Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/353.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django:若字段是特定值,则清空唯一名称_Python_Django_Django Models - Fatal编程技术网

Python Django:若字段是特定值,则清空唯一名称

Python Django:若字段是特定值,则清空唯一名称,python,django,django-models,Python,Django,Django Models,我想要什么 我希望字段是唯一的,除非同一模型中的其他字段是特定值。允许我将此唯一名称空出给未来的模型实例 我还需要允许testname为nullencase对于给定的测试没有testname 唯一字段:testname 调节器:cancelled=True models.py(简化) 类测试(models.Model): testname=models.CharField(最大长度=50,null=True,blank=True,unique=True) 取消=模型.布尔字段(默认值=False

我想要什么

我希望字段是唯一的,除非同一模型中的其他字段是特定值。允许我将此唯一名称空出给未来的模型实例

我还需要允许
testname
null
encase对于给定的测试没有
testname

唯一字段:
testname

调节器:
cancelled=True

models.py(简化)

类测试(models.Model):
testname=models.CharField(最大长度=50,null=True,blank=True,unique=True)
取消=模型.布尔字段(默认值=False)
您可以使用:

类测试(models.Model):
testname=models.CharField(最大长度=50,null=True,blank=True)
取消=模型.布尔字段(默认值=False)
类元:
约束=(
UniqueConstraint(字段=['testname'],条件=Q(取消=True),名称='…'),
)
这将在数据库表中添加一个约束,使字段具有条件唯一性。在这种情况下,不支持开箱即用的表单验证,因此需要单独添加表单验证