2014-10-20 33 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

相關問題