Django:定义插入长文本的表单的最佳方式是什么?

3

我正在使用Django1.8和Python 2.7+。

我想定义一个表单,其中用户可以插入任意长度的文本。

我尝试的第一件事是定义一个forms.TextField,但是结果发现TextField仅在models下存在,而不在forms下。

这是我定义它的方式:

selected_services = forms.CharField(label="Selected_services *",
                                    max_length=999999999,
                                    widget=forms.Textarea())

但是max_length=999999999这样看起来很糟糕。

有没有更优雅的方式定义一个能够存储非常长文本的表单字段?


表单中的“外观”部分主要是 htmlcss,因此您可能需要考虑重新标记问题。 - Adelin
@Adelin 我的意思是,那段代码中任意硬编码的“999999”看起来不太优雅。 - Xar
没错 - 我现在明白了。我也尝试回答了一下。 - Adelin
3个回答

4
您的代码应该保持原样:
selected_services = forms.CharField(label="Selected_services *",
                                widget=forms.Textarea())

将TextArea小部件定义为TextField,max_length属性不再是必需的。


2

只有models.CharField需要max_length。你可以从你的forms.CharField中删除它。

除此之外,你的当前代码看起来很好。使用TextArea是正确的小部件。


1

max_length属性似乎没有上限。

我已经检查了源代码这个表单的文档

因此,您可能需要尝试使用sys.maxint(Python 2)或sys.maxsize(Python 3)而不是任意数字。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接