[英]TypeError at / 'str' object is not a mapping in django template
我正在嘗試在標簽內設置鏈接,當我按照代碼中所示執行此過程時,它給了我錯誤:
/'str' 對象處的 TypeError 不是映射
它過去工作正常,但后來決定不
模板代碼:
<a class="item" href="{% url 'home' %}">
網址代碼:
urlpatterns = [
path('admin/', include('admin_llda.urls') ),
path('about/', views.about, name = 'about'),
path('dashboard/',views.dashboard, name = 'dashboard'),
path('',views.homepage, name = 'home')
]
檢查您是否在urls
文件中正確命名了name
kwarg。 這是一個關鍵字參數,而不是一個參數。 所以你應該輸入關鍵字和值。
例如,您已安裝的應用程序urls.py
文件之一中的當前urlpatterns
列表如下所示:
urlpatterns = [
path('', views.index, 'index'),
path('like/', views.like, 'like')
]
你應該檢查你是否錯過了 kwarg 這個name
。 上面的代碼應該改為:
urlpatterns = [
path('', views.index, name='index'),
path('like/', views.like, name='like')
]
如果你想更快地找到它,你可以在your_project/urls.py
文件中評論每個應用程序的 url 包含。 當錯誤消失時,這意味着您應該檢查注釋的應用程序urls.py
文件。
檢查您的所有urls.py
文件中是否有name
參數,適用於您安裝的每個 Django 應用程序。
如果您在path
函數中為任何 url 指定了名稱參數,則應將其聲明為path('', views.a, name='view.a')
,而不是path('', views.a, 'view.a')
。
注意后面的代碼中沒有name
參數。 如果您錯過了 name 參數,您將收到'TypeError at / 'str' object is not a mapping'
錯誤。
請檢查admin_llda.urls
錯誤。 您可能沒有在path()
調用之一中添加name=''
。
例如:
你可能寫過
path('',views.some_method, 'somename')
而不是路徑
path('',views.some_method, name= 'somename')
我剛剛遇到了同樣的問題,我找到了解決方案! 檢查您的 urls.py 以及您是否未能正確命名任何網址 - 不一定
我有同樣的問題,檢查路徑中的“名稱”參數('',,名稱 =“”)
嘗試將命名空間添加到您的 url,例如將以下內容添加到您的 'my_app/urls.py' app_name='my_app'
那么你的模板應該看起來像: <a class="item" href="{% url 'my_app:home' %}">
最后一定要在“my_project/settings.py”中注冊你的應用
https://docs.djangoproject.com/en/3.0/topics/http/urls/#naming-url-patterns
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.