Я написал валидатор для моей модели:
def validate_is_default(value):
if Wizard.objects.filter(set_as_default=True).count() == 1:
if value is True:
raise ValidationError(_('You can mark only one configuration as default'))
else:
raise ValidationError(_('You have to mark one configuration as default'))
И у меня есть модель, когда я его использую:
class MyModel(models.Model):
name = models.CharField(_('Wizard name'), default='Default', max_length=32, blank=False)
...
set_as_default = models.BooleanField(_('Set as default setup'), default=False, validators=[validate_is_default])
В валидаторе я хотел проверить, есть лиодна запись в базе данных, которая имеет set_as_default = True.Это прекрасно работает, когда я добавляю новую запись, но не удается, когда я пытаюсь ее отредактировать.Как это решить?
Я использую это в админ-панели.Я не хотел бы изменять форму по умолчанию, но решить ее как-то с помощью этих валидаторов.Возможно ли это?