zoukankan      html  css  js  c++  java
  • 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中的所有字段信息
  • 相关阅读:
    无法将类型“XXX”隐式转换为“XXX[]”(Cannot implicitly convert type 'XXX' to 'XXX[]')
    VS2010验证时出错。HRESULT = '8000000A'
    Linux Command Tips
    RealVNC 使用手册
    PL/SQL Developer自动补全SQL技巧
    Install dnsutils(dig, nslookup, host) On iPhone
    asp.net压缩图片
    Discuz论坛密码加密方式详解
    三种SQL分页法效率分析
    Mysql数据库服务器配置文件/etc/my.cnf的详细配置
  • 原文地址:https://www.cnblogs.com/sz-wenbin/p/11132772.html
Copyright © 2011-2022 走看看