Python Django,查询设置以查找多个字段中的计数
我有下面的模型Python Django,查询设置以查找多个字段中的计数,python,django,Python,Django,我有下面的模型 class Blog(models.Model): name = models.CharField(max_length=100) class Author(models.Model): name = models.CharField(max_length=200) class Entry(models.Model): blog = models.ForeignKey(Blog, on_delete=models.CASCADE) head =
class Blog(models.Model):
name = models.CharField(max_length=100)
class Author(models.Model):
name = models.CharField(max_length=200)
class Entry(models.Model):
blog = models.ForeignKey(Blog, on_delete=models.CASCADE)
head = models.CharField(max_length=255)
authors = models.ManyToManyField(Author)
我觉得作者如何算数
假设我有一个Entry对象作为Entryobject
(Entryobject=Entry.objects.filter(blog\uu name='a')
),我尝试如下,但得到属性错误
Entryobject.authors.count() # got error here
另外,请告诉我如何在Entryobject中查询作者列表。您可以这样查询作者列表:
Entryobject = Author.objects.all() or
Entryobject = Author.objects.values_list('name', flat=True)
关于flat=True我想介绍一下这位官员。基本上,它返回一个具有单个值而不是元组的查询集,例如:
>>> Entry.objects.values_list('id').order_by('id')
<QuerySet[(1,), (2,), (3,), ...]>
>>> Entry.objects.values_list('id', flat=True).order_by('id')
<QuerySet [1, 2, 3, ...]>
它应该是Entryobject=Entry.objects.filter(Blog_uuname='a'),并带有大写的B,不是吗?是的,这是Entry对象
Entryobject = Entry.objects.filter(Blog__name='a')