簡體   English   中英

TypeError at /'str' 對象不是 django 模板中的映射

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM