• 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中的所有字段信息
  • 相关阅读:
    Android学习笔记——启动Activity及Activity生命周期
    TransposonPSI——转座子分析的入门自学
    关于 GraPhlAn 的孤独自学
    Javascript 正则表达式 子表达式
    关于set,list,map的理解
    js关于日期的操作
    JDBC和JTA事务区别
    远程调试本地服务或程序
    Fragment的数据传递
    记录自己的第一篇博客
  • 原文地址:https://www.cnblogs.com/sz-wenbin/p/11132772.html
Copyright © 2020-2023  润新知