Reputation: 13
I'm getting this error and browser indicating that program is complaining to {% url 'login' %}. And what interesting is that I've never used set in this code.
For now it's sounds stupid error for me because of error indicating html file and complaining to set type.
Environment:
Request Method: GET
Request URL: http://0.0.0.0:8000/
Django Version: 2.2
Python Version: 3.7.13
Installed Applications:
['django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'django.contrib.admin',
'users.apps.UsersConfig',
'pages.apps.PagesConfig',
'crispy_forms',
'allauth',
'allauth.account']
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 /code/templates/base.html, error at line 18
'set' object is not reversible
8 : <link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet"
9 : integrity="sha384-0evHe/X+R7YkIZDRvuzKMRqM+OrBnVFBL6DOitfPri4tjfHxaWutUpFmBp4vmVor"
10 : crossorigin="anonymous">
11 : <link rel="stylesheet" href="{% static 'css/base.css' %}">
12 : </head>
13 : <body>
14 : <header>
15 : <!-- Fixed navbar -->
16 : <div class="d-flex flex-column flex-md-row align-items-center p-3 px-md-4
17 : mb-3 bg-white border-bottom shadow-sm">
18 : <a href=" {% url 'home' %} " class="navbar-brand my-0 mr-md-auto font-weight-normal">Bookstore</a>
19 : <nav class="my-2 my-md-0 mr-md-3">
20 : <a class="p-2 text-dark" href="{% url 'about' %}">About</a>
21 : {% if user.is_authenticated %}
22 : <a class="p-2 text-dark" href="{% url 'logout' %}">Log Out</a>
23 : {% else %}
24 : <a class="p-2 text-dark" href="{% url 'login' %}">Log In</a>
25 : <a class="btn btn-outline-primary" href="{% url 'signup' %}">Sign Up</a>
26 : {% endif %}
27 : </nav>
28 : </div>
Traceback:
File "/usr/local/lib/python3.7/site-packages/django/core/handlers/exception.py" in inner
34. response = get_response(request)
File "/usr/local/lib/python3.7/site-packages/django/core/handlers/base.py" in _get_response
145. response = self.process_exception_by_middleware(e, request)
File "/usr/local/lib/python3.7/site-packages/django/core/handlers/base.py" in _get_response
143. response = response.render()
File "/usr/local/lib/python3.7/site-packages/django/template/response.py" in render
106. self.content = self.rendered_content
File "/usr/local/lib/python3.7/site-packages/django/template/response.py" in rendered_content
83. content = template.render(context, self._request)
File "/usr/local/lib/python3.7/site-packages/django/template/backends/django.py" in render
61. return self.template.render(context)
File "/usr/local/lib/python3.7/site-packages/django/template/base.py" in render
171. return self._render(context)
File "/usr/local/lib/python3.7/site-packages/django/template/base.py" in _render
163. return self.nodelist.render(context)
File "/usr/local/lib/python3.7/site-packages/django/template/base.py" in render
937. bit = node.render_annotated(context)
File "/usr/local/lib/python3.7/site-packages/django/template/base.py" in render_annotated
904. return self.render(context)
File "/usr/local/lib/python3.7/site-packages/django/template/loader_tags.py" in render
150. return compiled_parent._render(context)
File "/usr/local/lib/python3.7/site-packages/django/template/base.py" in _render
163. return self.nodelist.render(context)
File "/usr/local/lib/python3.7/site-packages/django/template/base.py" in render
937. bit = node.render_annotated(context)
File "/usr/local/lib/python3.7/site-packages/django/template/base.py" in render_annotated
904. return self.render(context)
File "/usr/local/lib/python3.7/site-packages/django/template/defaulttags.py" in render
443. url = reverse(view_name, args=args, kwargs=kwargs, current_app=current_app)
File "/usr/local/lib/python3.7/site-packages/django/urls/base.py" in reverse
90. return iri_to_uri(resolver._reverse_with_prefix(view, prefix, *args, **kwargs))
File "/usr/local/lib/python3.7/site-packages/django/urls/resolvers.py" in _reverse_with_prefix
600. self._populate()
File "/usr/local/lib/python3.7/site-packages/django/urls/resolvers.py" in _populate
438. for url_pattern in reversed(self.url_patterns):
Exception Type: TypeError at /
Exception Value: 'set' object is not reversible
Error indicating to line 18
Please help!?
{% load static %}
<html>
<head>
<meta charset="utf-8">
<title>{% block title %}Bookstore{% endblock title %}</title>
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<!-- CSS only -->
<link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet"
integrity="sha384-0evHe/X+R7YkIZDRvuzKMRqM+OrBnVFBL6DOitfPri4tjfHxaWutUpFmBp4vmVor"
crossorigin="anonymous">
<link rel="stylesheet" href="{% static 'css/base.css' %}">
</head>
<body>
<header>
<!-- Fixed navbar -->
<div class="d-flex flex-column flex-md-row align-items-center p-3 px-md-4
mb-3 bg-white border-bottom shadow-sm">
<a href="{% url 'home' %}" class="navbar-brand my-0 mr-md-auto font-weight-normal">Bookstore</a>
<nav class="my-2 my-md-0 mr-md-3">
<a class="p-2 text-dark" href="{% url 'about' %}">About</a>
{% if user.is_authenticated %}
<a class="p-2 text-dark" href="{% url 'logout' %}">Log Out</a>
{% else %}
<a class="p-2 text-dark" href="{% url 'login' %}">Log In</a>
<a class="btn btn-outline-primary" href="{% url 'signup' %}">Sign Up</a>
{% endif %}
</nav>
</div>
</header>
<div class="container">
{% block content %}
{% endblock content %}
</div>
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js"
integrity="sha384-pprn3073KE6tl6bjs2QrFaJGz5/SUsLqktiwsUTF55Jfv3qYSDhgCecCxMW52nD2"
crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/\ bootstrap.min.js"
integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6V\ rjIEaFf/nJGzIxFDsf4x0xIM+B07jRM"
crossorigin="anonymous"></script>
</body>
</html>
My base.html file
from django.urls import path
from .views import HomePageView, AboutPageView
from bookstore.users.views import SignUpView
urlpatterns = [
path('', HomePageView.as_view(), name='home'),
path('about/', AboutPageView.as_view(), name='about'),
path('users', SignUpView.as_view(), name='signup'),
]
my app/urls.py
from django.contrib import admin
from django.urls import path
from django.urls import include
urlpatterns = {
path("admin/", admin.site.urls),
path('account/', include('allauth.urls')),
# local party
path('', include('pages.urls')),
path('account/', include('users.urls')),
}
my root urls.py
Upvotes: 1
Views: 77
Reputation: 6378
urlpatterns
have to be always a list
object. Otherwise Django will always throw error in given function: for url_pattern in reversed(self.url_patterns):
, because set
object cannot be reversed
. So simply keep this in mind:
urlpatterns = [
path(...),
path(...),
(...)
]
Upvotes: 2