Принудительное выполнение max_length для CharField

#django #django-models

#джанго #django-модели #django

Вопрос:

У меня есть CharField, для которого в определении модели задана максимальная длина 200. Я могу сохранять строки длиной более 200 в экземпляре этой модели без какой-либо ошибки. Есть ли способ принудительно использовать max_length при сохранении данных в CharField или это ограничение применяется только к ModelForms?

Спасибо!

Комментарии:

1. можете ли вы показать код model.py

2. Вот единственная строка, которая имеет значение: heading1 = models. CharField (max_length= 100, null = True, пробел = True)

3. Это всего лишь предположение, поэтому я не хочу формулировать это как ответ, но вы запускали makemigrations и migrate ? После изменения вашей модели (кода) вы должны сообщить базе данных об этом, используя миграции для любой операции, которая должна выполняться на уровне базы данных.

4. Да, у меня есть. Я думаю, что правильный ответ указан ниже. Хотя спасибо.

Ответ №1:

Похоже, что это может исходить из вашей базы данных.

Максимальная длина (в символах) поля. Значение max_length применяется на уровне базы данных и при проверке Django с использованием MaxLengthValidator.

Если вы не добавили средство проверки, похоже, что оно проверяется только на стороне базы данных. Так что, возможно, ваша база данных не «понимает» максимальное значение, а просто имеет максимальное значение. До этого максимального значения он принимает любую длину.

В любом случае, вы можете управлять этим из приложения, просто добавьте в это поле a MaxLengthValidator(limit_value, message=None) . Вы найдете описание здесь.