據我所知,當您使用PostgreSQL數據庫時,因爲TextField
和CharField
之間的速度差異對於PostgreSQL而言可以忽略不計,所以您應該始終使用TextField
作爲可變長度字符串。我相對新的Django,並考慮使用我的數據庫中的可變長度URL的TextField
。我想知道使用URLField
是否有優勢?使用TextField
而不是URLField
作爲網址會被認爲是不好的形式嗎?通過TextField使用URLField的優點?
29
A
回答
43
URLField實際上是CharField基於W /正則表達式的URL模式檢查和在線驗證(這是由一個基於正則表達式替換驗證),你可以使用文本字段,如果你不在乎URL
的長度,限制支持from django.core.validators import URLValidator
# in model
field = models.TextField(validators=[URLValidator()])
此外,使用CharField或TextField取決於您是否希望字段上的最大長度約束以及哪種元素類型更適合編輯:textarea或input。在PostgreSQL方面,沒有顯着差異。
2
https://docs.djangoproject.com/en/dev/ref/models/fields/#urlfield 當然,您可以使用CharField/TextField,但處理用戶輸入並確保無論用戶輸入什麼都取決於您。
從源代碼:
#與CharField,這會導致如果你看到URLField source code你會發現它實際上是用URL驗證一個CharField要執行
URL驗證。
此外還有其他準備使用字段,如EmailField,ImageField,* Field!
2
嘗試這個類:
class LongURLField(TextField):
description = 'Long URL'
def __init__(self, verbose_name=None, name=None, **kwargs):
TextField.__init__(self, verbose_name, name, **kwargs)
self.validators.append(validators.URLValidator())
def formfield(self, **kwargs):
# As with TextField, this will cause URL validation to be performed
# twice.
defaults = {
'form_class': forms.URLField,
}
defaults.update(kwargs)
return super(LongURLField, self).formfield(**defaults)
+1
將max_length設置爲2000,你有完美的領域:) – gabn88 2017-02-06 19:41:22
相關問題
- 1. datepicker通過點擊textfield
- 2. 通過PHP使用GWT的優點
- 3. 通過IEnumerable使用Observable集合的優點和缺點
- 4. 優化通過節點
- 5. 通過引用傳遞的優點,反對使用全球?
- 6. 通過實現IDatareader的閱讀器使用SQLDataReader的優點?
- 7. 使用jQuery啓用/禁用textfield通過點擊複選框黑洞
- 8. 通過引用v。通過指針 - 優點?
- 9. 通過Page_Error使用OnAsyncPostBackError的優點是什麼
- 10. 通過SSH遠程登錄的優點?
- 11. Wicket:通過Javascript更新textfield
- 12. 通過ReadChar使用SerialPort.ReadByte的優勢?
- 13. 優點在本地計算機上通過XAMP使用JavaScript + HTML5
- 14. 通過IDE使用WebDriver有哪些優點?
- 15. Django Admin過濾列表通過TextField
- 16. 優點和使用secureEvalJson超過evalJson
- 17. 通過優先
- 18. Python - Django URLField
- 19. Django URLField和HTML5?
- 20. Django SlugField與URLField
- 21. 通過點擊使用jQuery
- 22. 通過點擊使用jQuery
- 23. 打開窗口通過焦點textfield在extjs
- 24. ExtJs - 通過渲染器渲染的Textfield不會獲得點擊焦點?
- 25. 使用≠like!=優點/缺點
- 26. TextField - 鍵盤優化 - iOS
- 27. Objective-C的VisualFormatString - 標籤和TextField並排寬度優先的TextField
- 28. 使用Arrays.asList的優缺點
- 29. 使用MessageFormat的優缺點
- 30. 使用RequireJS的優點?
對於記錄,[IE不能加載大於約2000個字符長的URL(https://stackoverflow.com/questions/417142/what-is-the-不同瀏覽器中的最大長度),所以你可以在'URLField'上將'max_length'設置爲2000,並將其稱爲一天。 – mlissner 2015-05-26 17:55:43
任何對URLField的棄用的引用? – pravin 2018-02-07 19:20:05
@pravin它不是URLField,但它的先前驗證器已被棄用。驗證器在線訪問URL以驗證,現在它被替換爲正則表達式驗證器來檢查URL格式的驗證。 – okm 2018-02-09 04:49:47