py18_03:ORM之一对多表关系

from django.db import models


# 一类
class BookInfo(models.Model):  # 每个表必须继承models.Model
    # 图书类
    b_title = models.CharField(max_length=32)
    pub_date = models.DateField()


# 多类(需要在多类里创建外键),或者理解成被约束的表里编写。
class HeroInfo(models.Model):
    # 英雄人物类模型
    hname = models.CharField(max_length=20)
    hgender = models.BooleanField(default=False)
    hcomment = models.CharField(max_length=128)
    hbook = models.ForeignKey('BookInfo', on_delete=models.CASCADE)

上图代码
上图代码

 

 从一表里对应查询对应多表里的数据(外键写在被约束的表上)

 

 

 

 

从一表里跨表查询,“.”与“__”应用场景的区别。点:用在外键直接查询。双下划线,用在values上面

>>> b = UserInfo.objects.all().first()
>>> b.user_type.caption
>>> '运维'

>>> b = UserInfo.objects.all().values('user_type__caption')
>>> b
>>> <QuerySet [{'user_type__caption': '运维'}, {'user_type__caption': '运维'}

 

【完】

posted on 2020-03-31 12:08  yeyu1314  阅读(124)  评论(0)    收藏  举报