唯一的共同约束,包括特定的字段值 [英] Unique together constraint including specific field value

查看:78
本文介绍了唯一的共同约束,包括特定的字段值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

对于我的一个模型,我需要确保某些行的唯一性,但仅在特定情况下。仅已验证行应遵循此约束。

For one of my models, I need to ensure the unicity of some rows, but only in a certain case. Only the "validated" rows should follow this constraint.

基本上,我期待的是

class MyModel(models.Model):
    field_a = models.CharField()
    field_b = models.CharField()
    validated = models.BooleanField(default=False)

    class Meta:
        unique_together = (('field_a', 'field_b', 'validated=True'),)


推荐答案

在使用Django 2.2+
的情况下,您可以使用UniqueConstraint这是一个示例

You can use UniqueConstraint in case you're using Django 2.2+ Here is an example

class MyModel(models.Model):
    field_a = models.CharField()
    field_b = models.CharField()
    validated = models.BooleanField(default=False)

    class Meta:
        constraints = [
            UniqueConstraint(fields=['field_a', 'field_b'], condition=Q(validated=True), name='unique_field_a_field_b_validated')
        ]

这是

这篇关于唯一的共同约束,包括特定的字段值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆