我的博客
這個問題在網上隨便一搜就有解決辦法,說是把urls.py里面的urlpatterns = 這部分的{}改成[]就可以了,想想也對,畢竟里面是個list也不是個dict
先說下我的project內容
我用的命令是
python manage.py startproject myweb
python manage.py startapp app1
python manage.py startapp app2
創建了一個project和2個app
我的myweb里面的urls.py內容是
urlpatterns = { path('admin/', admin.site.urls), path('app1/', include('app1.urls')), path('app2/', include('app2.urls')), }
app1里面的urls.py內容是
app_name = 'app1' urlpatterns = { path('f/',views.f, name='f'), }
views里面f的方法很簡單,就是顯示hello,這個就不單獨寫了
然后是app2里面的urls.py內容
app_name = 'app2' urlpatterns = { path('f2/',views.f2, name='f2'), }
這個views里面的f2方法是呼叫a.html這個頁面,也就是
def f2(request): return render(request,'f2.html')
再說說a.html這個
{% load static %}
<html>
<body>
<a href=https://www.cnblogs.com/xiu123/p/"{% url 'app2:f2' %}">test</a>
</body>
</html>
好了,一切準備就緒,有心的同學一定看到了myweb和app1、app2里面的urls.py全都是{}
測驗下頁面,結果報錯'set' object is not reversible
報錯內容指向{% url 'app2:f2' %}
那么我就按照網上的說法,把myweb下的urls.py里面的{}改成了[]
結果還是不行,這時候我其實沒有想到是因為app1和app2的原因,就又搜了一下,結果有人說要改{% url 'app2:f2' %}改成[% url 'app2:f2' %]
于是我改了,結果頁面居然正常了,正當我滿心歡喜的測驗的時候,意外出現了,點擊test直接跳轉到http://127.0.0.1[% url 'app2:f2' %]
我勒個去,這是什么玩意,那尼瑪這個鏈接有個毛用,于是又改了回來,還是報錯
經過深思熟慮和再三的驗證,這時候發現了app1和app2的倪端,本著試一試的想法,把app1和app2里面urls.py中的{}也給改成了[]
再次測驗,正常顯示,并且鏈接正確,直到這里,整個故事就算結束了
可是有一點我想不明白,我用的app2和myweb的urls.py和app1有什么關系,問題是我不改app1,頁面依然報同一個錯誤
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/514062.html
標籤:Python
下一篇:用python實作猜數字游戲
