[英]Django 3 - NoReverseMatch
我對 Django 有點陌生,我不知道如何解決似乎是一個簡單的錯誤。 很多人在這里或多或少地問了同樣的問題,但他們的任何修復都對我有用。
所以我有 2 個應用程序,一個可以作為其他應用程序的主菜單:
主菜單 urls.py:
re_path(r'^elec/boq/', include('a0101_boq_elec_main.urls', namespace="SAMM")),
然后在該應用程序的 urls.py 中,我有這個:
app_name='BoqElecMM'
urlpatterns = [
path('', views.boq_index.as_view(), name='boqIndex'),
path('search/', views.SearchResultView.as_view(), name='searchResult'),
path('<int:boq_project_id>', views.BoqProjectInfo.as_view(), name='BPInfo'),
]
但是當我嘗試在我的模板中使用它時: <a href="{% url 'BoqElecMM:BPInfo' %}">
,我收到了這個 Django 錯誤:
NoReverseMatch at /elec/boq/ Reverse for 'BPInfo' 未找到。 'BPInfo' 不是有效的視圖 function 或模式名稱。
你們中的一些人可以告訴我,我在這里做錯了什么嗎? 先感謝您。
您需要為boq_project_id
參數傳遞一個值,例如
{% url 'BoqElecMM:BPInfo' boq_project_id=42 %}
當然,您傳遞給boq_project_id
的值通常是project
object 的 id。 例如,如果您的模板中有一個project
object,您可以編寫:
{% url 'BoqElecMM:BPInfo' boq_project_id=project.pk %}
如果你也有一個namespace=…
,那么它也應該是前綴,所以對於你視圖中的數據,它是:
{% url 'SAMM:BoqElecMM:BPInfo' boq_project_id=project.pk %}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.