0
のQueryDictからキーとして関連オブジェクトと辞書を取得するには、我々は次のモデルを考えてみましょう:(簡体字)ジャンゴ:どのように
class Collection(models.Model):
slug = models.SlugField()
class Brochure(models.Model):
collection = models.ForeignKey(Collection)
class Page(models.Model):
brochures = models.ManyToMany(Brochure)
- 2集「X」と「Y」があります。 。
- ページにはパンフレットが含まれています。
page_instance.brochures.all()
EDIT
I:唯一の多対多のマネージャを使用して
{'x': [brochure1, brochure2], 'y': [brochure3, brochure4]}
:
このようなパンフレットの辞書を取得する方法はありますページに関連するパンフレットで作業したいBrochures.objects.all()またはcollection_instance.brochure_setではありません。それが私がページを含む理由です。
私は私がこれを行うことができますされ、defaultdictが見つかりました:
collection_brochures = defaultdict(list)
for b in self.brochures.all():
collection_brochures[b.collection.slug].append(b)
実はこれは私の質問への答えです。
私はこれで動作することができますが、理想的には、このようなdictsとリストのようになります。私はこのコードスニペットは、仕事をすることを願っています
[{'collection': 'x', 'brochures': [brochure1, brochure2]}, {'collection': 'y', 'brochures': [brochure3, brochure4]}]
ご質問を詳しくお試しください。あなたがキーをCollectionインスタンスとし、その値がそのコレクションのBrochureインスタンスのリストである辞書が必要なようです。あれは正しいですか?なぜ私はページがそれに関連しているのか分かりません。 –