我有一個 Django 應用程序,用戶可以在其中使用 Basketball 模型創建一個 Basketball 對象并將其發布到作為 ListView 子類的提要。然后,我希望其他用戶能夠通過單擊該對象的超鏈接來訪問該帖子的詳細信息。問題是,當我將詳細信息頁面的 url 設置為包含變量“slug”作為對象 slug 時,它會用 basketball/urls.py 中看到的 url 路由“”覆蓋我的列表頁面,而不是路由到列表頁面它說找不到帶有空 slug 的頁面。這不允許我訪問 url“ http://127.0.0.1:8000/basketball/ ”我的印象是 Django 按順序搜索 url 路由,因此由于空白路徑是第一條路由,因此應該在包含 slug 的路由之前看到它。請注意,直接導致問題的代碼片段位于 basketball_list.html 中:<a href= "{% url 'basketball:detail' basketball.slug %}">刪除此代碼后,我可以訪問“ http://127.0.0.1:8000/basketball/ ”,但超鏈接不存在,因此無法達到目的。請注意,我使用的是:Python == 3.8.3 Django == 3.0.6
1 回答

慕的地8271018
TA貢獻1796條經驗 獲得超4個贊
您的網址與 basketball_list 循環變量 (x) 不匹配。這個
{% for x in basketball_list %}
<li><a href= "{% url 'basketball:detail' basketball.slug %}">{{ x }}</a></li>
{% endfor %}
應該
{% for x in basketball_list %}
<li><a href= "{% url 'basketball:detail' x.slug %}">{{ x }}</a></li>
{% endfor %}
添加回答
舉報
0/150
提交
取消