3

Django は、正当な理由により、変更リスト内の多対多の関係からの関連オブジェクトの表示をサポートしていません。これにより、多くのデータベース ヒットが発生します。

しかし、オブジェクトと多対多の関係にあるオブジェクトのカテゴリをチェンジリストに表示するなど、避けられず必要な場合もあります。その場合、これを少しスピードアップするための経験/スニペットなどを持っている人はいますか(キャッシング、カスタムSQLクエリを考えています...)? (私は呼び出すメソッドを作成できるという事実を認識していますobject.categories.all()...しかし、これは本当にお尻の痛みになる可能性があります...)。

4

1 に答える 1

1

変更リストの行ごとに 1 つ以上のデータベース ヒットが受け入れられないdenormalizationと思われる場合は、モデルで選択を行う必要があります。

問題は、この ManyToMany リレーションをどのように格納するかです。おそらく、 aまたは aで同期されたJSONシリアル化されたオブジェクトを使用して、必要なフィールドのサブセットをシリアル化できます(たとえば)。CharFieldTextFieldpkname

ただし、潜在的に大きな列を追加するときは、パフォーマンスへの副作用に注意してください。クエリセットのdefer メソッドはあなたの友人です。

于 2011-12-27T01:10:02.223 に答える