私を悩ませている Django ORM の問題で立ち往生しています。外部キーでリンクされた一連のモデルがありますが、要件が少し奇妙です。リレーションのリレーションごとにアイテムをリストする必要があります。これを説明するのは難しいので、これを以下に示してみました。
仕事
- ManyToMany(受賞)
アワード
- ForeignKey(受賞カテゴリー)
賞の種類
賞のカテゴリ別にリストされるように、作業項目をリストする必要があります。望ましい出力は次のようになります。
作業インスタンス A
- 助成カテゴリ インスタンス A に属する助成インスタンス A
- 助成カテゴリ インスタンス A に属する助成インスタンス C
- 助成カテゴリ インスタンス A に属する助成インスタンス G
作業インスタンス A (上記と同じインスタンスですが、別の award__category でリストされています)
- 特典カテゴリ インスタンス B に属する特典インスタンス F
- 落札カテゴリ インスタンス B に属する落札インスタンス R
- 助成カテゴリ インスタンス B に属する助成インスタンス Z
作業インスタンス B
- 助成カテゴリ インスタンス A に属する助成インスタンス B
- 助成カテゴリ インスタンス A に属する助成インスタンス A
基本的に、すべての作品を賞のカテゴリ別にリストしたいと思います。これを部分的に機能させることはできますが、私の解決策は不潔でひどいものです。もっと良い方法はないかと考えています。ManyToMany と through 属性の使用を検討しましたが、正しく使用されているかどうかわかりません。