django反向外键查找

时间:2012-01-18 08:48:36

标签: django foreign-keys

我是Django开发者,我遇到了反向外键查找的问题。问题描述如下:

我正在进行查询优化。我有一个模型MicroMessage,其User(来自django.contrib.auth.models)的外键为author。还有一些其他类也有User的外键(例如UserProfile)。

我需要一个查询来获取MicroMessage的作者以及与任何其他模型相关的所有用户,我可以从中访问该作者的UserProfile信息而不会有任何过多的查询。我试过这个:

MicroMessage.objects.select_reverse({'authors':'author_set'})

请帮助我。提前谢谢。

1 个答案:

答案 0 :(得分:2)

您正在寻找select_related https://docs.djangoproject.com/en/dev/ref/models/querysets/#select-related

messages = MicroMessage.objects.select_related('author', 'author__userprofile')

第二个字段(用户的个人资料)是反向外键,但如果实现为文档建议的OneToOneField,则可以按照上面显示的方式查询该类是否为UserProfile