模型中Django Textfield的适用性

时间:2010-01-10 10:25:15

标签: django database-design django-models

我在模型中有一个字段,我希望用户感觉他们可以编写任意数量的文本.Django在模型中提供了CharField和TextField。我假设不同之处在于其中一个是char(max_length)而另一个是内部的varchar。

我很想使用TextField,但因为它不尊重max_length,所以我有点担心有人将大量数据转储到它并对我的服务器进行DOS操作。我该怎么处理这个?

谢谢!

1 个答案:

答案 0 :(得分:7)

模型中的字段仅表示数据存储在数据库中的方式。

您可以非常轻松地在表单中强制执行最大长度,以验证用户的输入。像这样。

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

这将确保用户可以成功输入的最大长度为16k。