1. ホーム
  2. django

[解決済み] 逆方向の外部キーでフィルタリングするDjango Queryset

2023-06-25 23:45:09

質問

以下のようなDjangoのモデルを持っています。

class Make:
   name = models.CharField(max_length=200)

class MakeContent:
   make = models.ForeignKey(Make)
   published = models.BooleanField()

私は、(SQLを直接書かずに)クエリセットを生成することが可能かどうかを知りたいのです。 Make とそれぞれの関連する MakeContent があり published = True .

どのように解決するのですか?

Django は select_related() メソッドをサポートしていませんので、 Python を離れずにできる最善のことは、2つのデータベースへの問い合わせです。一つ目は、すべての Makes を含むすべての MakeContents ここで published = True をつかむこと、そしてもうひとつは、すべての MakeContents ここで published = True . そして、ループしてデータを好きなように並べる必要があります。この方法については、こちらの記事を参照してください。

http://blog.roseman.org.uk/2010/01/11/django-patterns-part-2-efficient-reverse-lookups/