/ / Adekwatność pola tekstowego Django w modelu - django, projektowanie baz danych, modele django

Odpowiedniość pola tekstowego Django w modelu - django, projekt bazy danych, modele django

Mam pole w modelu, które chcę, aby użytkownicyczują, że mogą napisać dowolną ilość tekstu. Django zapewnia CharField i TextField w modelach. Zakładam, że różnica polega na tym, że jeden z nich jest char (max_length), a drugi jest wewnętrznie varcharem.

Kusi mnie, aby użyć TextField, ale ponieważ nie respektuje on max_length, jestem nieco ostrożny, jeśli ktoś zrzuci do niego mnóstwo danych i DOSuje mój serwer. Jak mam sobie z tym poradzić?

Dzięki!

Odpowiedzi:

7 dla odpowiedzi № 1

Pola w modelu reprezentują tylko sposób przechowywania danych w bazie danych.

Możesz bardzo łatwo wymusić maksymalną długość w formie, która zweryfikuje dane wejściowe użytkowników. Tak to wygląda.

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

Zapewni to, że maksymalna długość, którą użytkownik może z powodzeniem wprowadzić, to 16k.