Django:关联查询
2、setting.py
中注册应用
3、定义模型类
from django.db import models # Create your models here. # 定义图书模型类Book class Book(models.Model): title = models.CharField(max_length=20, verbose_name='图书名称') read = models.IntegerField(default=0, verbose_name='阅读量') comment = models.IntegerField(default=0, verbose_name='评论量') def __str__(self): return self.title class Meta: db_table = 't_book' # 定义人物表 Person class Person(models.Model): name = models.CharField(max_length=20, verbose_name='人物姓名') gender = models.BooleanField(default=True, verbose_name='性别') book = models.ForeignKey(Book, verbose_name='所属图书', on_delete=models.CASCADE) def __str__(self): return self.name class Meta: db_table = 't_person'
-
-
执行迁移:
二、
由一到多的访问语法:
# 一对应的模型类对象.多对应的模型类名小写_set # 查询编号为1的图书。 book=Book.objects.get(id=1) # 获得book图书的所有人物。 book.person_set.all()
#多对应的模型类对象.多对应的模型类中的关系类属性名 p = Person.objects.get(id=1) p.book
#多对应的模型类对象.关联类属性_id p = Person.objects.get(id=1) p.book_id三、
关联模型类名小写__属性名__条件运算符=值如果没有"__运算符"部分,表示等于,结果和sql中的inner join相同
# 查询图书,要求图书中人物的描述包含'宝'。 list = Book.objects.filter(person__name__contains='宝')
一模型类关联属性名__一模型类属性名__条件运算符=值# 查询书名为“天龙八部”的所有人物。 list = Person.objects.filter(book__title='天龙八部')
知道、想到、做到、得到