在/反向获取错误NoReverseMatch以'login'找不到参数。尝试了1个模式:['accounts / $ login / $']

问题描述 投票:1回答:2

URLS.PY

from django.conf.urls import url
from django.contrib.auth import views as auth_views
from . import views

app_name = 'accounts'

urlpatterns = [
    url(r'^login/$',auth_views.LoginView.as_view(),name='login'),
    url(r'^logout/$',auth_views.LogoutView.as_view(),name='logout'),
    url(r'^signup/$',views.SignUp.as_view(),name='signup'),
]

base.html

<!DOCTYPE html>
{% load staticfiles %}
<html lang="en" dir="ltr">
  <head>
    <meta charset="utf-8">
    <title>Star Social</title>
    ...
    <link rel="stylesheet" href="{% static 'simple_clone/css/master.css' %}">
  </head>
  <body>
          <nav class="navbar mynav" role="navigation" id="navbar">
            <div class="container">
              <a class="navbar-brand" href="{% url 'home' %}">Star Social</a>
              <ul class="navbar-nav ml-auto">
                {% if user.is_authenticated %}
                <li class="nav-item"> <a class="nav-link" href="#">Post</a>
                </li>
                <li class="nav-item"><a class="nav-link" href="#">Groups</a>
                </li>
                <li class="nav-item"><a class="nav-link" href="#">Create Group</a>
                </li>
                <li class="nav-item"><a class="nav-link" href="{% url 'accounts:logout' %}">Logout</a>
                </li>
                {% else %}
                <li class="nav-item"><a class="nav-link" href="#">Groups</a>
                </li>
                <li class="nav-item"><a class="nav-link" href="{% url 'login' %}">Log In</a>
                </li>
                <li class="nav-item"><a class="nav-link" href="{% url 'accounts:signup'%}">Sign Up</a>
                </li>
                {% endif %}
              </ul>
            </div>
          </nav>

     {% block content%}
     {% endblock %}
  </body>
</html>

关于尝试访问http://127.0.0.1:8000/

请求方法:GET要求网址:http://127.0.0.1:8000/Django版本:1.11.29异常类型:NoReverseMatch异常值:反向查找“ login”,未找到任何参数。尝试了1种模式:['accounts / $ login / $']

python django django-urls
2个回答
2
投票

首先,您的登录网址应为:

<li class="nav-item"><a class="nav-link" href="{% url 'accounts:login' %}">Log In</a>

由于在app_name='accounts'下。

[其次,我猜想您在包含帐户网址的网址末尾放置了$符号。请通过

解决
url(r'^accounts/',include('accounts.url')),

因为$表示正则表达式的结尾。


0
投票

您必须在登录链接中添加app_name,在您的情况下为$

accounts
© www.soinside.com 2019 - 2024. All rights reserved.