【问题标题】:Django 3 CheckConstraints m2m fieldDjango 3 CheckConstraints m2m 字段
【发布时间】:2020-09-17 11:57:48
【问题描述】:

我想将数据库约束添加到我的模型中,这要求其至少有一个字段不为空。检查 m2m 字段时,我收到 FieldError: Cannot resolve keyword '' into field.

是否可以创建这样的约束?

示例代码:

class A(Model):
    id = AutoField()
    url = ManyToManyField(Url, blank=True)
    description = TextField(null=True, blank=True)

    class Meta:
        constraints = [CheckConstraints(
            check=(Q(description__isnull=False) | Q(url__isnull=False))),
            name="someName"
        )]

【问题讨论】:

    标签: django django-models django-rest-framework


    【解决方案1】:

    使用 CheckConstraint 功能无法实现此目的。 Django 将所有 ORM 命令转换为低级 DB 特定命令,即使在 DB 级别也无法创建此类约束。实际上,我们可以将 CheckConstraint 应用于仅添加/更新的单行。

    在此处查看完整答案: https://stackoverflow.com/a/60799459/15090285

    【讨论】:

      猜你喜欢
      • 2013-02-05
      • 1970-01-01
      • 2011-03-02
      • 1970-01-01
      • 2013-06-25
      • 1970-01-01
      • 1970-01-01
      • 2015-09-29
      • 2022-01-20
      相关资源
      最近更新 更多