#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)
. Вы найдете описание здесь.