我有以下Django型号:
class Make:
name = models.CharField(max_length=200)
class MakeContent:
make = models.ForeignKey(Make)
published = models.BooleanField()
我想知道是否有可能(不直接编写SQL)生成一个包含所有Make
和每个相关MakeContent
(其中published = True
)的查询集.
我有以下Django型号:
class Make:
name = models.CharField(max_length=200)
class MakeContent:
make = models.ForeignKey(Make)
published = models.BooleanField()
我想知道是否有可能(不直接编写SQL)生成一个包含所有Make
和每个相关MakeContent
(其中published = True
)的查询集.
Django不支持select_related()
方法进行反向外键查找,所以不离开Python最多只能进行两次数据库查询.第一个是抓取所有包含MakeContents
所在published = True
的Makes
,第二个是抓取所有MakeContents
所在的published = True
.然后,您必须按您想要的方式循环和排列数据.这里有一篇关于如何做到这一点的好文章:
http://blog.roseman.org.uk/2010/01/11/django-patterns-part-2-efficient-reverse-lookups/