次のモデルを想像してください。
class Parent(Model):
...
class Child(Model)
father = ForeignKey(Parent)
...
子供がいる親もいれば、いない親もいます(本当の意味での親ではなく、架空の名前です)。
次の質問をしたいと思います: リストしたいすべての親、子供がいる場合は、子供たちも連れてきてこれは、Child テーブルへの左外部結合と同等です。
select * from app_parent left join app_child on child_father_id=parent_id
このように、私が呼び出すと親.子セット私のテンプレートでは、データベースに何度もアクセスすることはありません。それを実現する方法はありますか?ありがとうございます
ベストアンサー1
Django 1.4 以降では、prefetch_related
必要なことが可能になります。
Parent.objects.prefetch_related('child_set')
関連(!) django ドキュメント:https://docs.djangoproject.com/en/dev/ref/models/querysets/#prefetch-related。