models
from django.db import models
# Create your models here.
class Book_new_Table(models.Model):
book_name = models.CharField(max_length=20,verbose_name="书籍名称")
class Meta:
db_table = "book_new_table"
verbose_name = "书籍表"
verbose_name_plural = verbose_name
def __str__(self):
return self.book_name
class People_new_table(models.Model):
# 定义一个有序字典
SEX_CHOICE = (
(1, "男"),
(2, "女")
)
people_name = models.CharField(max_length=20,verbose_name="任务名称")
people_info = models.CharField(max_length=20,verbose_name="人物描述")
gender = models.SmallIntegerField(choices=SEX_CHOICE,verbose_name="性别")
book = models.ForeignKey(Book_new_Table,on_delete=models.CASCADE,related_name="books_id")
class Meta:
db_table = "people_new_table"
verbose_name = "人物表"
verbose_name_plural = verbose_name
def __str__(self):
return self.people_name
views.py
def book_people_select(request):
#主表的一条书籍数据,查询出从表的人物信息 这个是从表添加related_name="books_id"正向查询的语句
# bookinfo = Book_new_Table.objects.get(id=1)
# print(bookinfo.books_id.all()) #主表查从表
# 主表的一条书籍数据,查询出从表的人物信息 这个是从表不添加related_name="books_id"正向查询的语句
bookinfo = Book_new_Table.objects.get(id=1)
print(bookinfo.people_new_table_set.all()) # 主表查从表
# bookinfo_all = Book_new_Table.objects.all()
# print(bookinfo_all)
#从表的一条人物信息,查询出主表的书籍信息
peopleinfo = People_new_table.objects.get(id=1)
print(peopleinfo.book.book_name)
return HttpResponse("这是正向查询和反向查询")