我正在嘗試通過 url 傳遞日期和 id,但出現錯誤,我之前只傳遞了 id,我通常這樣做。
path('user_payment_menu/<int:pk>/',user_payment_menu, name='user_payment_menu'),
但現在我希望日期在 int:pk/ 之后通過,但是當我在斜杠后添加日期時出現錯誤。
uj5u.com熱心網友回復:
定義 a 的最簡單方法可能date是使用自定義路徑轉換器。您可以通過以下方式實作:
# app_name/converters.py
class DateConverter:
regex = '\d{4}-\d{1,2}-\d{1,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)
然后就可以注冊格式并使用<date:…>路徑轉換器了:
# app_name/urls.py
from django.urls import path, register_converter
from app_name.converters import DateConverter
from app_name.views import user_payment_menu
register_converter(DateConverter, 'date')
urlpatterns = [
path('user_payment_menu/<int:pk>/<date:mydate>/',user_payment_menu, name='user_payment_menu'),
然后在視圖中定義一個額外的屬性,該屬性將包含date作為date物件:
# app_name/views.py
def user_payment_menu(request, pk, mydate):
# …
您可以在生成 URL 時使用date物件,例如:
{% url 'user_payment_menu' pk=somepk mydate=somedate %}
uj5u.com熱心網友回復:
這簡單:
path('user_payment_menu/<int:pk>/<str:date>',user_payment_menu, name='user_payment_menu'),
你可以這樣使用它:
reverse('user_payment_menu', args=[1, str(date.today()])
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/416257.html
標籤:
