Django 条件多对一关系?

时间:2021-02-24 23:54:01

标签: sql django django-models

我有三个模型:

  • 产品
  • 变化
  • 捆绑商品

Variation 和 BundledItem 都与 Product 有多对一的关系。

产品的“类型”(带选项的 CharField)可以是“简单”、“变量”或“捆绑”。

我想确保 Variation 只能与“变量”类型的产品相关,而 BundledItem 只能与“捆绑”类型的产品相关。

如何将其作为条件实施或验证产品类型作为链接变体/捆绑项目的一部分?

1 个答案:

答案 0 :(得分:0)

您可以过滤查询中的产品以获得所需的类型:

Product.object.filter(type='simple')

这将为您提供“简单”类型的所有产品

之后您可以进一步过滤它,例如通过 id 或产品名称:

Product.object.filter(name='my_product_name')

这种类型的查询也可以通过组合过滤器在一个命令中完成:

Product.object.filter(type='simple', name='my_product_name')

查询官方docs,很有帮助