Django Template语法中 OneToOne、ForeignKey 外键查询

主表的Models的结构

class A(models.Model):
    username = models.CharField(max_length=32, verbose_name='用户名称')
    password = models.CharField(max_length=64, verbose_name='密码')

从表的Models的结构

class B(models.Model):
    name = models.CharField(max_length=30, verbose_name='员工姓名')
    number = models.CharField(max_length=30, unique=True, default=100101, verbose_name='员工工号')
    phone = models.CharField(max_length=11, blank=True, null=True, verbose_name='电话')
    a = models.OneToOneField(A,verbose_name='用户')

一、OneToOne

1、在Template中使用主表(A) 查询 从表(B)的内容

注意:在template中写 从表(B)的名称字母要小写,即使你的models中定义时使用的大小字母,也都要小写

# 通过主表查询子表内容,object_A为template中主表A的对象
{{ object_A.b.name }}   # 子表B中的name字段信息
{{ object_A.b.number }}   # 子表B中的number字段信息
{{ object_A.b.phone }}   # 子表B中的phone字段信息

2、在Template中使用主表(B) 查询 从表(A)的内容

# 通过子表查询主表内容
{{ object_B.a.username }} 
{{ object_B.a.password }} 

二、 ForeignKey 

表C 中字段ForeignKey 到A表

class C(models.Model):
    info = models.CharField(max_length=32, verbose_name='信息')
    user= models.ForeignKey(A, verbose_name='用户')

1、从C表查A表的内容(正向查找)

{{ object_C.a.username }}   # 表A中的username字段信息

2、从A表中查C表的内容(反向查找)

{{ object_A.c_set.info}}   # 表C中的info字段信息
{{ object_A.c_set.all}}   # 表C中的所有字段信息

 

转载于:https://www.cnblogs.com/sz-wenbin/p/11132772.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值