【问题标题】:Django Conditional Many-to-One Relationship?Django条件多对一关系?
【发布时间】:2021-02-24 23:54:01
【问题描述】:

我有三个模型:

  • 产品
  • 变化
  • 捆绑物品

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

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

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

如何将其作为条件实现或验证产品类型作为链接 Variation/BundledItem 的一部分?

【问题讨论】:

    标签: sql django django-models


    【解决方案1】:

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

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

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

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

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

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

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

    查询官方docs,很有帮助

    【讨论】:

      猜你喜欢
      • 2015-11-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-11
      • 2015-07-05
      • 1970-01-01
      • 2018-08-28
      • 2013-04-06
      相关资源
      最近更新 更多