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