[英]Django: Vacate unique name if field is a particular value
我想要的是
我希望一個字段是唯一的,除非同一 model 中的其他字段是特定值。 允許我將此唯一名稱騰出給未來的 model 實例。
我還需要允許testname
為null
給定測試沒有testname
。
唯一字段: testname
護發素: cancelled=True
models.py (簡體)
class Test(models.Model):
testname = models.CharField(max_length=50, null=True, blank=True, unique=True)
cancelled = models.BooleanField(default=False)
您可以使用UniqueConstraint
:
class Test(models.Model):
testname = models.CharField(max_length=50, null=True, blank=True)
cancelled = models.BooleanField(default=False)
class Meta:
constraints = (
UniqueConstraint(fields=['testname'], condition=Q(cancelled=True), name='...'),
)
這將在您的數據庫表中添加一個約束,使該字段具有條件的唯一性。 在這種情況下,不支持開箱即用的表單驗證,因此需要單獨添加。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.