Уместность текстового поля Django в модели - PullRequest
5 голосов
/ 10 января 2010

У меня есть поле в модели, которое я хочу, чтобы пользователи чувствовали, что могут писать произвольное количество текста. Django предоставляет CharField и TextField в моделях. Я предполагаю, что разница в том, что один из них является char (max_length), а другой - внутренним varchar.

У меня возникает соблазн использовать TextField, но, поскольку он не учитывает max_length, я несколько опасаюсь, что кто-то загрузит в него множество данных и ДОСИТ мой сервер. Как мне с этим бороться?

Спасибо!

1 Ответ

7 голосов
/ 10 января 2010

Поля в модели представляют только способ хранения данных в базе данных.

Вы можете очень легко установить максимальную длину в форме, которая будет проверять ввод пользователя. Вот так.

class InputForm(forms.Form):
    text = forms.CharField(max_length=16384, widget=forms.TextArea)
    ...

Это гарантирует, что максимальная длина, которую пользователь может успешно ввести, составляет 16 КБ.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...