/'str'对象的TypeError不是Django模板中的映射

时间:2019-01-04 11:52:01

标签: python django django-views

我试图在标签内建立链接,并且当我执行代码中所示的此过程时,它给我错误:

  / p中的

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')   
]

6 个答案:

答案 0 :(得分:5)

检查您是否在name中正确命名了urls kwarg。 这是一个关键字参数,而不是参数。

答案 1 :(得分:1)

检查所有urls.py是否正确添加了name参数。

如果您使用path('',views.a, 'view.a')而不是path('',views.a, name='view.a'),则会得到'TypeError at / 'str' object is not a mapping'

答案 2 :(得分:0)

请检查admin_llda.urls中的错误。 您可能会错过在name=''调用之一中添加path()

例如:

您可能已经写过

path('',views.some_method, 'somename')

代替路径

path('',views.some_method, name= 'somename')

答案 3 :(得分:0)

我只是遇到了同样的问题,所以找到了解决方案!检查您的urls.py,以及您是否未能正确命名任何url-不一定

答案 4 :(得分:0)

我遇到了同样的问题,请检查path('',, name =“”)中的“ name”参数

答案 5 :(得分:0)

尝试将名称空间添加到您的网址 例如,将以下内容添加到“ 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