首页 > 解决方案 > 'set' 对象不可逆

问题描述

我是 django 的新手,所以我正在在线学习教程。但是,当我得到命名的 url 时,我开始出现以下错误,即使在网上检查了解决方案后,我似乎也无法找到解决方法。我正在尝试在 html 模板 (article_list.html) 中使用命名 url,因此当用户单击任何文章时,他们会在那里阅读有关此类文章的信息。这是我的 urls.py 文件

from django.urls import path
from.import views 

urlpatterns = {
    path('', views.article_list, name='list'),
    path('<slug:slug>/', views.article_detail, name='detail'),
}

Here is my trackback

  Environment:


    Request Method: GET
    Request URL: http://127.0.0.1:8000/articles/

    Django Version: 2.1.4
    Python Version: 3.7.1
    Installed Applications:
    ['django.contrib.admin',
     'django.contrib.auth',
     'django.contrib.contenttypes',
     'django.contrib.sessions',
     'django.contrib.messages',
     'django.contrib.staticfiles',
     'articles']
    Installed Middleware:
    ['django.middleware.security.SecurityMiddleware',
     'django.contrib.sessions.middleware.SessionMiddleware',
     'django.middleware.common.CommonMiddleware',
     'django.middleware.csrf.CsrfViewMiddleware',
     'django.contrib.auth.middleware.AuthenticationMiddleware',
     'django.contrib.messages.middleware.MessageMiddleware',
     'django.middleware.clickjacking.XFrameOptionsMiddleware']


    Template error:
    In template C:\Users\BOLADE\Desktop\django-playlist\blog\templates\base_layout.html, error at line 0
       'set' object is not reversible
       1 : {%  load static from staticfiles %}
       2 : <!DOCTYPE html>
       3 : <html lang="en">
       4 : <head>
       5 :     <meta charset="UTF-8">
       6 :     <title>Articles</title>
       7 :     <link rel="stylesheet" href="{% static 'styles.css' %}">
       8 : </head>
       9 : <body>
       10 : 


    Traceback:

    File "C:\Users\BOLADE\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\core\handlers\exception.py" in inner
      34.             response = get_response(request)

    File "C:\Users\BOLADE\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\core\handlers\base.py" in _get_response
      126.                 response = self.process_exception_by_middleware(e, request)

    File "C:\Users\BOLADE\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\core\handlers\base.py" in _get_response
      124.                 response = wrapped_callback(request, *callback_args, **callback_kwargs)

    File "C:\Users\BOLADE\Desktop\django-playlist\blog\articles\views.py" in article_list
      9.     return render(request, 'articles/article_list.html', {'articles': articles})

    File "C:\Users\BOLADE\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\shortcuts.py" in render
      36.     content = loader.render_to_string(template_name, context, request, using=using)

    File "C:\Users\BOLADE\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\template\loader.py" in render_to_string
      62.     return template.render(context, request)

    File "C:\Users\BOLADE\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\template\backends\django.py" in render
      61.             return self.template.render(context)

    File "C:\Users\BOLADE\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\template\base.py" in render
      171.                     return self._render(context)

    File "C:\Users\BOLADE\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\template\base.py" in _render
      163.         return self.nodelist.render(context)

    File "C:\Users\BOLADE\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\template\base.py" in render
      937.                 bit = node.render_annotated(context)

    File "C:\Users\BOLADE\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\template\base.py" in render_annotated
      904.             return self.render(context)

    File "C:\Users\BOLADE\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\template\loader_tags.py" in render
      150.             return compiled_parent._render(context)

    File "C:\Users\BOLADE\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\template\base.py" in _render
      163.         return self.nodelist.render(context)

    File "C:\Users\BOLADE\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\template\base.py" in render
      937.                 bit = node.render_annotated(context)

    File "C:\Users\BOLADE\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\template\base.py" in render_annotated
      904.             return self.render(context)

    File "C:\Users\BOLADE\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\template\loader_tags.py" in render
      62.                 result = block.nodelist.render(context)

    File "C:\Users\BOLADE\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\template\base.py" in render
      937.                 bit = node.render_annotated(context)

    File "C:\Users\BOLADE\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\template\base.py" in render_annotated
      904.             return self.render(context)

    File "C:\Users\BOLADE\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\template\defaulttags.py" in render
      209.                     nodelist.append(node.render_annotated(context))

    File "C:\Users\BOLADE\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\template\base.py" in render_annotated
      904.             return self.render(context)

    File "C:\Users\BOLADE\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\template\defaulttags.py" in render
      442.             url = reverse(view_name, args=args, kwargs=kwargs, current_app=current_app)

    File "C:\Users\BOLADE\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\urls\base.py" in reverse
      90.     return iri_to_uri(resolver._reverse_with_prefix(view, prefix, *args, **kwargs))

    File "C:\Users\BOLADE\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\urls\resolvers.py" in _reverse_with_prefix
      562.             self._populate()

    File "C:\Users\BOLADE\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\urls\resolvers.py" in _populate
      430.                     url_pattern._populate()

    File "C:\Users\BOLADE\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\urls\resolvers.py" in _populate
      413.             for url_pattern in reversed(self.url_patterns):

    Exception Type: TypeError at /articles/
    Exception Value: 'set' object is not reversible

标签: djangopython-3.xdjango-templatesdjango-views

解决方案


推荐阅读