我有一個 django 應用程式,我有 2 個 url 路徑,它們僅在最后一部分不同,即路徑轉換器:
path('questions/<pk>', views.QuestionDetailView.as_view(), name='question_detail'),
path('questions/<slug:tag_slug>', views.QuestionListView.as_view(), name='questions_by_tag')
當我轉到 127.0.0.1:8000/questions/1 時沒問題,它顯示正確的結果,但是當我轉到 127.0.0.1:8000/questions/something(something is a slug) 時,它說找不到頁面!(它必須使用第二個 url 路徑,但它沒有!)
當我更改路徑順序時,它會正確顯示第二個,而另一個則有問題!有人可以幫我嗎?
uj5u.com熱心網友回復:
您沒有為 指定路徑轉換器<pk>,因此它將使用<str:…>路徑轉換器 [Django-doc],并且<str:…>是 的超集,<slug:…>因此與匹配的所有內容也匹配<slug:…>,<str:…>因此第二個模式永遠不會觸發。
您應該使用<int:…>整數的路徑轉換器,所以:
path('questions/<int:pk>/', views.QuestionDetailView.as_view(), name='question_detail'),
path('questions/<slug:tag_slug>/', views.QuestionListView.as_view(), name='questions_by_tag')
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/451149.html
