django テンプレートでは、多数のユーザーのプロファイル情報を表示するためにループを実行するときに、get_profile を呼び出して、多くの SQL リクエストを生成します。
{% for user in users %}
{{ user.username }} : {{ user.get_profile.birth_date }}
{% endfor %}
表示するユーザーが 50 人いる場合、各ユーザーのプロファイルを取得するために 50 の SQL 要求が生成されます。
リクエストの数を減らすエレガントな方法はありますか?
編集 :
最終的な目標は、アイテムが属性としてユーザー オブジェクトを持つアイテムのリストを管理することでした。例 : stackoverflow の各質問には作成者としてユーザーがいます。最小限の SQL 要求でユーザー プロファイル情報を表示しながら、最近のすべての質問を一覧表示する方法:
テンプレートは次のようになります。
{% for question in recent_questions %}
{{ question.title }}
{{ question.body }}
{{ question.creator.username }}
{{ question.creator.get_profile.age }}
{{ question.creator.get_profile.country }}
{% endfor %}
しかし、これは非常に多くの SQL リクエストを生成します ...