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 № 1Pola 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.