我有以下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 = TrueMakes,第二个是抓取所有MakeContents所在的published = True.然后,您必须按您想要的方式循环和排列数据.这里有一篇关于如何做到这一点的好文章:

http://blog.roseman.org.uk/2010/01/11/django-patterns-part-2-efficient-reverse-lookups/

Django相关问答推荐

Django查询一个查询集的输入结果,以查找没有出现在另一个模型中的对象

在Django上传JPEG图像时遇到问题

Django多对多关系报错:<title> object (None)>需要先设置id字段的值.

如何在不编写每个视图中的逻辑的情况下呈现值,Django?

Django rest框架:自定义对象权限不起作用

如何在 Django 模板中的计数器上进行 for 循环中断?

django 创建多种类型用户的最佳方法

Django RESTful API - django-piston vs. django-tastypie

Django中基于令牌的身份验证

为 Django 模型生成非顺序 ID/PK

AttributeError:'Manager'对象在Django中没有属性'get_by_natural_key'错误?

Django REST Framework - 将额外参数传递给操作

Django 密码以什么格式存储在数据库中?

如何在 Django 测试框架中修改会话

Django - 如何从模型实例中获取管理员 URL

django-object-permissions Vs django-guardian Vs django-authority

django 静态文件版本控制

更改 Django ModelChoiceField 以显示用户的全名而不是用户名

Django 发送邮箱

在 Django 中查询 top x 元素