2014-10-20 35 views
0

我正在研究一个Django应用程序,我想知道是否有任何理由为模型字段(特别是TextField,但我对所有字段感兴趣)明确设置max_length是否需要在模型字段中设置max_length?

它是减少表格大小还是提高效率?与较大的max_length相比,较小的max_length有优势吗?

回答

1

你需要在CharField中设置它,因为它默认为None,我相信。但有些情况下,如电话号码,ssn或美国国家的缩写,它会引导用户输入一定长度的字符。根据文档:https://docs.djangoproject.com/en/dev/ref/models/fields/#django.db.models.TextField

class TextField([** options]) 大型文本字段。该字段的默认表单窗口小部件是一个Textarea。

在Django 1.7中更改: 如果指定max_length属性,它将反映在自动生成的表单字段的Textarea小部件中。但是它不是在模型或数据库级别实施的。为此使用CharField。

+0

谢谢,所以如果我理解正确,除了验证它并不重要?并且为CharField挑选一个较小的max_lenth与选择较大的一个有什么优势? – Parker 2014-10-20 21:38:19

+0

好吧,我想这取决于数据库如何为varchar声明空间。在很多情况下,我不确定这是否重要。 – 2014-10-20 21:47:42

+2

@皮克,如果你超过了某些限制,这很重要。在MySQL中,旧版​​本的VARCHAR为255,而新版本的限制为65,535。此外,行的总大小为65,535字节,VARCHAR中的内容受其限制,但TEXT的内容不受此限制。检查你的数据库的规格。 – 2014-10-20 22:17:32

相关问题