繁体   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