我有一個簡單的ForeignKey關系:
class Foo(models.Model):
id = UUIDField()
class Bar(models.Model):
id = UUIDField()
foo = ForeignKey(foo)
如果我有一個物件的初始queryset值Bar,我怎樣才能獲得Foo每個相關物件的查詢集Bar?
我目前正在這樣做,但我想知道是否有更好的方法:
bar_qs = Bar.objects.all().select_related("foo")
foo_ids = []
for i in bar_qs:
foo_ids.append(i.foo.id)
foo_qs = Foo.objects.filter(id__in=foo_ids)
uj5u.com熱心網友回復:
試試這個查詢:
Foo.objects.filter(bar_set__in=Bar.objects.all())
uj5u.com熱心網友回復:
您在使用中做的是正確的事情,select_related因為這會foo在同一個查詢中收集相關物件,因此無需再次查詢資料庫中的Foo表。
你可以這樣做;
bar_qs = Bar.objects.all().select_related("foo")
foos = []
for i in bar_qs:
foos.append(i.foo)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/450619.html
