Запретить пустую строку в качестве допустимого значения в модели с вариантами выбора, которые включают NULL - PullRequest
0 голосов
/ 31 августа 2018

У меня есть следующая модель:

class MyModel(models.Model):
    RED = 'red'
    BLUE = 'blue'
    EMPTY_COLOR = None
    COLORS  = (
        (EMPTY_COLOR, '---'),
        (RED, 'red'),
        (BLUE, 'blue'),
    )

    color = models.CharField(max_length=255, null=True, blank=True,
                             choices=COLORS, default=EMPTY_COLOR)

Я хочу, чтобы модель проверялась как действительная (используя full_clean() в экземпляре), если цвет установлен на None (или сине-красный, конечно), но не при установке пустой строки. Тем не менее, пустая строка, к счастью, может быть определена в модели и сохранена в базе данных, даже если варианты, на мой взгляд, определены только как NULL, «красный» или «синий».

Мои предположения неверны? Как я могу запретить использование пустой строки в качестве допустимого значения при сохранении работоспособности проверки модели, когда цвет None?

1 Ответ

0 голосов
/ 31 августа 2018

Попробуйте удалить пробел = True в поле цвета

color = models.CharField(max_length=255, null=True,
                             choices=COLORS, default=EMPTY_COLOR)

или установите его пустым = False

...