У меня есть модель Django, как это:Джанго ограничение уникальности, когда конкретное поле Правды
class Process(Place):
isRunning = models.BooleanField(default=True)
name = models.CharField(max_length=20)
Я хотел бы, чтобы обеспечить соблюдение, что name
поля является уникальным, когда isRunning
верно.
Возможно ли это ограничение в моделях Django?
Это может быть дубликатом this question, но он не имеет общепринятый ответ, и Джанго разработал много, так как это было предложено.
вы можете указать поля '' 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/ instance/# validating-objects), но помните, что он вызывается автоматически при сохранении ModelForm и в Django admin, а не при выполнении 'instance.save()' – Anentropic