Django-admin одно из полей должно быть заполнено в django-моделях - PullRequest
0 голосов
/ 09 ноября 2018

Здравствуйте, у меня есть модель, как

class mymodel(models.Model):
    a = models.CharField(blank=True, null=True, max_length=255)
    b = models.CharField(blank=True, null=True, max_length=255)
    c = models.CharField(blank=False, null=False, max_length=255)

Поскольку я использую администратора django в качестве внутреннего контроллера данных, хранящихся в моей модели, я хочу, чтобы любой из них не был нулевым

например, пользователь должен либо заполнить a, либо заполнить b или both, чтобы заполнить, но если both пусто, выдается ошибка

1 Ответ

0 голосов
/ 09 ноября 2018

Вы можете добавить пользовательскую проверку, как это

class mymodel(models.Model):
    a = models.CharField(blank=True, null=True, max_length=255)
    b = models.CharField(blank=True, null=True, max_length=255)
    c = models.CharField(blank=False, null=False, max_length=255)

    def clean(self):
        if not (self.a and self.b):
            raise ValidationError(....)
...