簡體   English   中英

Django:如果字段是特定值,則騰出唯一名稱

[英]Django: Vacate unique name if field is a particular value

我想要的是

我希望一個字段是唯一的,除非同一 model 中的其他字段是特定值。 允許我將此唯一名稱騰出給未來的 model 實例。

我還需要允許testnamenull給定測試沒有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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM