我有一個Django模型是這樣的:Django的唯一性約束在特定領域爲True
class Process(Place):
isRunning = models.BooleanField(default=True)
name = models.CharField(max_length=20)
我想執行的name
域是唯一的,當isRunning
是真實的。
這個約束在Django模型中可能嗎?
這可能是 this question的重複,但它沒有被接受的答案,並且自從它被問到時,Django開發了很多。
你可以指定['unique_together'字段](https://docs.djangoproject.com/en/1.8/ref/models/options/#unique-together),但是這也會強制「name」是唯一的記錄'isRunning'是'false'(即你有兩組唯一的名字)...否則你可以自定義[模型驗證](https://docs.djangoproject.com/en/1.8/ref/models/儘管記住它只是在保存ModelForm和Django admin時自動調用,而不是當執行'instance.save()' – Anentropic