Django - 从平方多对多关系中获取对象
Django - Get objects from a squared many-to-many relation
我正在使用以下模型启动 Django 项目:
供应商 <- 多对多 -> 产品 <- 多对多 -> 类别
是否有一种有效的方法来获取链接到供应商产品的所有类别?
目前低效的方式:
- 获取特定供应商的所有产品
- 为所有产品获取其特定类别
- 删除类别列表的重复项
如果可能的话,我想避免在类别和供应商之间创建虚假的多对多关系。
提前致谢,
诀窍总是从你想要得到的模型开始,即Category。因此,假设您的关系称为 product
和 vendor
,并且您有一个名为 my_vendor
:
的 Vendor 对象
Category.objects.filter(product__vendor=my_vendor)
我正在使用以下模型启动 Django 项目:
供应商 <- 多对多 -> 产品 <- 多对多 -> 类别
是否有一种有效的方法来获取链接到供应商产品的所有类别?
目前低效的方式:
- 获取特定供应商的所有产品
- 为所有产品获取其特定类别
- 删除类别列表的重复项
如果可能的话,我想避免在类别和供应商之间创建虚假的多对多关系。
提前致谢,
诀窍总是从你想要得到的模型开始,即Category。因此,假设您的关系称为 product
和 vendor
,并且您有一个名为 my_vendor
:
Category.objects.filter(product__vendor=my_vendor)