【问题标题】:Appropriateness of a Django Textfield in a Model模型中 Django 文本字段的适当性
【发布时间】:2011-01-03 10:45:47
【问题描述】:

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

我很想使用 TextField,但由于它不尊重 max_length,所以我有点担心有人将大量数据倾倒到其中并对我的服务器进行 DOS 操作。我该如何处理?

谢谢!

【问题讨论】:

    标签: django database-design django-models


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 太糟糕了,我希望我可以只使用 ModelForm 而不修改表示。我喜欢把幻数都放在一个地方:-)
    • 实际上,您仍然可以使用 ModelForm 并为该字段自定义它。见docs.djangoproject.com/en/1.1/topics/forms/modelforms/…
    • 应该说 widget=forms.Textarea 而不是 forms.TextArea。
    猜你喜欢
    • 2010-11-30
    • 1970-01-01
    • 1970-01-01
    • 2021-10-26
    • 1970-01-01
    • 1970-01-01
    • 2019-12-24
    • 2011-06-28
    • 1970-01-01
    相关资源
    最近更新 更多