一、前几日内容回顾
对于Queryset内容的理解
print(models.Publish.objects.filter(name='南方出版社'))
print(type(models.Publish.objects.filter(name='南方出版社')))
publish_obj = models.Publish.objects.filter(name='南方出版社').first()
print(publish_obj)
print(type(models.Publish.objects.filter(name='南方出版社').first()))
print(publish_obj.book_set) # app01.Book.None
print(type(publish_obj.book_set))
print(publish_obj.book_set.all()) # 因为一个出版社会有多本书,所以得加all()
for i in publish_obj.book_set.all():
print(i.title)
res = models.Publish.objects.filter(name='南方出版社').values('book__title')
print(res)
for i in publish_obj.book_set.all():
print(i.title)
res = models.Book.objects.select_related('publish')
print(res, type(res))
for obj in res:
print(obj.publish.name)
<QuerySet [<Publish: 出版社对象:南方出版社>]>
<class 'django.db.models.query.QuerySet'>
出版社对象:南方出版社
<class 'app01.models.Publish'>
app01.Book.None
<class 'django.db.models.fields.related_descriptors.create_reverse_many_to_one_manager.<locals>.RelatedManager'>
<QuerySet [<Book: 书籍对象:django从入门到入土爆款>, <Book: 书籍对象:python数据分析爆款>]>
django从入门到入土爆款
python数据分析爆款
<QuerySet [{'book__title': 'django从入门到入土爆款'}, {'book__title': 'python数据分析爆款'}]>
django从入门到入土爆款
python数据分析爆款
<QuerySet [<Book: 书籍对象:python从入门到入土爆款>, <Book: 书籍对象:lunix云计算爆款>, <Book: 书籍对象:django从入门到入土爆款>, <Book: 书籍对象:python数据分析爆款>, <Book: 书籍对象:Golang高并发爆款>]> <class 'django.db.models.query.QuerySet'>
书籍对象:python从入门到入土爆款
北方出版社
书籍对象:lunix云计算爆款
北方出版社
书籍对象:django从入门到入土爆款
南方出版社
书籍对象:python数据分析爆款
南方出版社
书籍对象:Golang高并发爆款
东方出版社
"""
1、个人的理解是通过models.Publish.objects查出来的对象不管后面是value还是all还是filter出来的都是Queryset
2、下面就是从Queryset中取出一个个的class,可以利用first也可以利用for循环
3、最后出来的class才可以使用.name的方法取到最终的值
"""
标签:obj,管理系统,models,第六十一,publish,出版社,爆款,print,图书
From: https://www.cnblogs.com/tuq2791/p/17963828