我正在使用 Django 構建一個事件管理應用程式。我創建了一個動態日歷,我正在嘗試在導航中添加指向下個月日歷的鏈接。
網址.py
from django.urls import path
from . import views
urlpatterns = [
path('', views.home, name = 'home'),
path('<int:year>/<str:month>/', views.home),
]
在我的 views.py 檔案中,我添加了如下引數:
def home(request, year=datetime.now().year, month=datetime.now().strftime('%B')):
<li class="nav-item">
<a class="nav-link" href="{% url 'home' '2021' 'November' %}">November</a>
</li>
當我添加兩個引數時,出現模板渲染錯誤:
未找到帶有引數 '('2021', 'November')' 的 'home' 反轉。嘗試了 1 個模式:['$']
當我洗掉兩個引數并只離開 'home' 時,模板錯誤消失了,我不知道為什么。任何幫助表示贊賞!
uj5u.com熱心網友回復:
看起來你的URLconf沒有指定你的兩個引數(正確)。它應該看起來像這樣:
from django.urls import path
from . import views
urlpatterns = [
path('/<int:year>/<str:month>/', views.home, name='home'),
]
uj5u.com熱心網友回復:
您在這里擁有的是兩個不同的 url,它們恰好由同一個視圖處理。第一個 url 是沒有指定日期的主頁,第二個是指定了年份和月份的頁面。
將它們作為兩種不同命名的 url 模式處理,例如:
網址.py
from django.urls import path
from . import views
urlpatterns = [
path('', views.home, name='home'),
path('<int:year>/<str:month>/', views.home, name='byyearmonth'),
]
模板:
<li class="nav-item">
<a class="nav-link" href="{% url 'byyearmonth' '2021' 'November' %}">November</a>
</li>
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/322338.html
標籤:Python 姜戈 django-views django-urls
