ManyToManyフィールドに別のオブジェクトが含まれているすべてのオブジェクトを選択する方法を知りたいのですが。私は次のモデルを持っています(取り除いた)
class Category(models.Model):
pass
class Picture(models.Model):
categories = models.ManyToManyField(Category)
visible = models.BooleanField()
1つまたは複数のカテゴリのすべての画像を選択する機能が必要です。
def pics_in_cats(cat_ids=()):
pass
ただし、次のようなことができるように、可能であればQuerySetを返す必要があります。
pics_in_cats((1,2,3)).filter(visible=True)
これは、関連するすべてのCategoryオブジェクトをロードし、それらのpicture_set属性をマージすることで実行できますが、非効率的です。また、可能であれば生のSQLにフォールバックしないようにしたいと思います。
前もって感謝します