'Django TypeError: 'set' object is not reversible
I'm new to Django, and I followed a tutorial online. I have two paths for this app, and I'm trying to link two paths. But unexpectedly, when I use {% url 'name' %}, TypeError at /task/add occurs. here's my code:
#urls.py
from django.urls import path
from . import views
#app_name = "tasks"
urlpatterns = [
path("", views.index, name="index"),
path("add", views.add, name="add")
]
#views.add
def add(request):
return render(request, "tasks/add.html")
#core url.py
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
path('hello/', include("hello.urls")),
path('newyear/', include("newyear.urls")),
path('tasks/', include("tasks.urls"))
]
#index.html
{% extends "tasks/layout.html" %}
{% block body %}
<ul>
{% for task in tasks %}
<li>{{ task }}</li>
{% endfor %}
</ul>
<a href="{% url 'add' %}">Add a New Task</a>
{% endblock %}
I tried to re-run my virtual server, but it's not the case.
any idea why it's going wrong?
#error trackback
TypeError at /task/
'set' object is not reversible
Request Method: GET
Request URL: http://127.0.0.1:8000/task/
Django Version: 4.0.2
Exception Type: TypeError
Exception Value:
'set' object is not reversible
Exception Location: /home/ryan/Documents/lecture3/newenv/lib/python3.8/site-packages/django/urls/resolvers.py, line 496, in _populate
Python Executable: /home/ryan/Documents/lecture3/newenv/bin/python
Python Version: 3.8.10
Python Path:
['/home/ryan/Documents/lecture3/lecture3',
'/usr/lib/python38.zip',
'/usr/lib/python3.8',
'/usr/lib/python3.8/lib-dynload',
'/home/ryan/Documents/lecture3/newenv/lib/python3.8/site-packages']
Server time: Sat, 05 Feb 2022 10:53:49 +0000
Error during template rendering
In template /home/ryan/Documents/lecture3/lecture3/task/templates/tasks/index.html, error at line 9
'set' object is not reversible
1 {% extends "tasks/layout.html" %}
2
3 {% block body %}
4 <ul>
5 {% for task in tasks %}
6 <li>{{ task }}</li>
7 {% endfor %}
8 </ul>
9 <a href="{% url 'add' %}">Add a New Task</a>
10 {% endblock %}
Traceback Switch to copy-and-paste view
/home/ryan/Documents/lecture3/newenv/lib/python3.8/site-packages/django/core/handlers/exception.py, line 47, in inner
response = get_response(request) …
Local vars
/home/ryan/Documents/lecture3/newenv/lib/python3.8/site-packages/django/core/handlers/base.py, line 181, in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs) …
Local vars
/home/ryan/Documents/lecture3/lecture3/task/views.py, line 8, in index
return render(request, "tasks/index.html",{ …
Local vars
/home/ryan/Documents/lecture3/newenv/lib/python3.8/site-packages/django/shortcuts.py, line 19, in render
content = loader.render_to_string(template_name, context, request, using=using) …
Local vars
/home/ryan/Documents/lecture3/newenv/lib/python3.8/site-packages/django/template/loader.py, line 62, in render_to_string
return template.render(context, request) …
Local vars
/home/ryan/Documents/lecture3/newenv/lib/python3.8/site-packages/django/template/backends/django.py, line 61, in render
return self.template.render(context) …
Local vars
/home/ryan/Documents/lecture3/newenv/lib/python3.8/site-packages/django/template/base.py, line 176, in render
return self._render(context) …
Local vars
/home/ryan/Documents/lecture3/newenv/lib/python3.8/site-packages/django/template/base.py, line 168, in _render
return self.nodelist.render(context) …
Local vars
/home/ryan/Documents/lecture3/newenv/lib/python3.8/site-packages/django/template/base.py, line 977, in render
return SafeString(''.join([ …
Local vars
/home/ryan/Documents/lecture3/newenv/lib/python3.8/site-packages/django/template/base.py, line 978, in <listcomp>
node.render_annotated(context) for node in self …
Local vars
/home/ryan/Documents/lecture3/newenv/lib/python3.8/site-packages/django/template/base.py, line 938, in render_annotated
return self.render(context) …
Local vars
/home/ryan/Documents/lecture3/newenv/lib/python3.8/site-packages/django/template/loader_tags.py, line 153, in render
return compiled_parent._render(context) …
Local vars
/home/ryan/Documents/lecture3/newenv/lib/python3.8/site-packages/django/template/base.py, line 168, in _render
return self.nodelist.render(context) …
Local vars
/home/ryan/Documents/lecture3/newenv/lib/python3.8/site-packages/django/template/base.py, line 977, in render
return SafeString(''.join([ …
Local vars
/home/ryan/Documents/lecture3/newenv/lib/python3.8/site-packages/django/template/base.py, line 978, in <listcomp>
node.render_annotated(context) for node in self …
Local vars
/home/ryan/Documents/lecture3/newenv/lib/python3.8/site-packages/django/template/base.py, line 938, in render_annotated
return self.render(context) …
Local vars
/home/ryan/Documents/lecture3/newenv/lib/python3.8/site-packages/django/template/loader_tags.py, line 65, in render
result = block.nodelist.render(context) …
Local vars
/home/ryan/Documents/lecture3/newenv/lib/python3.8/site-packages/django/template/base.py, line 977, in render
return SafeString(''.join([ …
Local vars
/home/ryan/Documents/lecture3/newenv/lib/python3.8/site-packages/django/template/base.py, line 978, in <listcomp>
node.render_annotated(context) for node in self …
Local vars
/home/ryan/Documents/lecture3/newenv/lib/python3.8/site-packages/django/template/base.py, line 938, in render_annotated
return self.render(context) …
Local vars
/home/ryan/Documents/lecture3/newenv/lib/python3.8/site-packages/django/template/defaulttags.py, line 445, in render
url = reverse(view_name, args=args, kwargs=kwargs, current_app=current_app) …
Local vars
/home/ryan/Documents/lecture3/newenv/lib/python3.8/site-packages/django/urls/base.py, line 86, in reverse
return resolver._reverse_with_prefix(view, prefix, *args, **kwargs) …
Local vars
/home/ryan/Documents/lecture3/newenv/lib/python3.8/site-packages/django/urls/resolvers.py, line 664, in _reverse_with_prefix
self._populate() …
Local vars
/home/ryan/Documents/lecture3/newenv/lib/python3.8/site-packages/django/urls/resolvers.py, line 513, in _populate
url_pattern._populate() …
Local vars
/home/ryan/Documents/lecture3/newenv/lib/python3.8/site-packages/django/urls/resolvers.py, line 496, in _populate
for url_pattern in reversed(self.url_patterns): …
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
Solution | Source |
---|