我有一个模型(或者实际上是 2 个模型,但另一个不相关)
class Foo(models.Model):
...
bar = models.ForeignKey(Bar,
...
)
当我有一个Foo
:s 的 QuerySet 时,如何获取Bar
该 QuerySet 引用的所有实例?
由于我使用的是 MySQL,我不能这样做.distinct(['bar'])
我有一个模型(或者实际上是 2 个模型,但另一个不相关)
class Foo(models.Model):
...
bar = models.ForeignKey(Bar,
...
)
当我有一个Foo
:s 的 QuerySet 时,如何获取Bar
该 QuerySet 引用的所有实例?
由于我使用的是 MySQL,我不能这样做.distinct(['bar'])
foo_queryset = Foo.objects.filter(attr=value)
referenced_bars = Bar.objects.filter(id__in=foo_queryset.values('bar_id'))
bars = Bar.objects.filter(foo_set__attr=value)
你可以foo_queryset.bar_set.all()
用来获取你的所有实例Bar
foo_queryset = Foo.objects.filter(attr=value)
referenced_bars = foo_queryset.bar_set.all()
Django 文档有更多详细信息。