django - '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
解决方案
推荐阅读
- mysql - MySQL - 如果不存在,则使用子查询插入
- c# - 无法解决错误“IMvxViewModel”不包含“PropertyChanged”的定义)
- c# - datagridview 可见网格线,即使没有数据 c#
- php - 我第一次使用 PHPMailer
- django - 多对多字段上的 Django 过滤器类
- perl - 如何在没有子例程的情况下将应用程序配置加载到模块中
- angular - Bootstrap 模态关闭事件不会触发模态覆盖的关闭
- python - 如何仅将换行符添加到字典值?
- excel - 从 Excel 文件中过滤掉大约 2000 个电子邮件地址
- java - 将 Base64 编码的字节 [] 作为 JSON MIME 类型传递