2012-02-19 8 views
0

manyToManyフィールドを持つdjangoフォームでは、新しいエントリを追加するときにリスト内の各オブジェクトを取得するためのデータベース呼び出しがありますか?これは必要/無駄ですか?Django ManyToManyフォームのフィールド - 不必要なデータベース呼び出し?

クラスMyFormを(ModelFormサブクラス):例えば

好き= forms.ModelMultipleChoiceField(クエリセット= Videos.objects.all())フォームが送信される

....

プロジェクトIDのリストが表示されます。 clean()メソッドの中でlikesはVideoオブジェクトのリストになります。ただし、次の操作を行うことができます。

self.instance.likes.add()...オブジェクトを取得する必要はありません。

...

は、それがオブジェクトの関係を更新する前に、最初に検索されていることを無駄でしょうか?そうでない場合、なぜですか?

答えて

0

フォームを保存するたびに、各IDがそのクエリーセット内にあることを確認するために渡したクエリーセットを評価することになります。動作を最適化する場合は、ModelMultipleChoiceFieldをサブクラス化し、チェックを削除するか、より合理化してみてください。

関連する問題