' set'对象不是可逆的,但是我没有得到特定的文件或行

发布于 2025-02-10 14:07:15 字数 8906 浏览 0 评论 0原文

我遇到了此错误,浏览器表示程序向{%url'login'%}抱怨。有趣的是,我从未在此代码中使用设置。

目前,我听起来对我来说是愚蠢的错误,因为指示HTML文件并抱怨设置类型的错误。

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

指示第18行的错误

请帮助!?

{% 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>

我的base.html文件

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'),
]

我的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')),
}

我的root urls.py

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

笑咖 2025-02-17 14:07:15

urlpatterns必须始终为list对象。否则,django将始终在给定函数中丢弃错误:for url_pattern在反向(self.url_patterns)中:,因为set> set object 无法反向。因此,请记住这一点:

urlpatterns = [
    path(...),
    path(...),
    (...)
]

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(...),
    (...)
]
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文