我有一個日志系統,用戶可以在其中記錄任何一天的幾個癥狀。我在我的 url 中將日期作為 slug,但我需要驗證它。哪一種是最佳實踐,為什么?
在類視圖中創建一個驗證器函式并在那里使用它
添加一個隱藏的表單欄位,并為它撰寫一個自定義的 DateValidator?
uj5u.com熱心網友回復:
您可以定義將決議date物件的路徑轉換器。您可以使用以下命令定義自定義模式:
# app_name/converters.py
class DateConverter:
regex = '[0-9]{4}-[0-9]{2}-[0-9]{2}'
format = '%Y-%m-%d'
def to_python(self, value):
return datetime.strptime(value, self.format).date()
def to_url(self, value):
return value.strftime(self.format)
接下來我們可以注冊該路徑轉換器 [Django-doc]并使用:
from app_name.converters import DateConverter
from django.urls import path, register_converter
register_converter(DateConverter, 'date')
urlpatterns = [
# …
path('some/path/<date:date>/', some_view),
# …
]
這會將單個date引數傳遞給視圖,該引數是一個date物件,因此您可以使用:
def some_view(request, date):
# …
如果您因此訪問路徑/some/path/2021-10-17,date將是一個date(2021, 10, 17)物件。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/322277.html
標籤:姜戈
