首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >django.urls.exceptions.NoReverseMatch:找不到'sign_up‘的反向。“sign_up”不是有效的视图函数或模式名称

问django.urls.exceptions.NoReverseMatch:找不到'sign_up‘的反向。“sign_up”不是有效的视图函数或模式名称
EN

Stack Overflow用户
提问于 2017-10-18 01:17:16
回答 3查看 17.7K关注 0票数 7

Django版本1.11.5,

views.py

代码语言:javascript
复制
class SignupPage(CreateView):
    form_class = forms.UserSignupForm
    success_url = reverse_lazy('login')
    template_name = 'signup.html'

网站/urls.py

代码语言:javascript
复制
from django.conf.urls import url
from django.contrib.auth import views as auth_views
from django.contrib.auth.views import LoginView,LogoutView
from . import views

app_name = 'website'

urlpatterns = [

    url(r'^login/', auth_views.LoginView.as_view(template_name='signin_2_w.html'), name='login'),
    url(r'^logout/$', auth_views.LogoutView.as_view(), name='logout'),
    url(r'^signup/', views.SignupPage.as_view(), name='sign_up'),

forms.py

代码语言:javascript
复制
class UserSignupForm(UserCreationForm):

    class Meta:
        fields = ('username','email','password1','password2')


        model = get_user_model()

    def __init__(self,*args,**kwargs):
        super().__init__(*args,**kwargs)
        self.fields['username'].label = "Display Name"
        self.fields['email'].label = "Email Address"
        self.fields['password1'].label = "Password"
        self.fields['password2'].label = "Confirm Password"

proj/urls.py

代码语言:javascript
复制
urlpatterns = [

    url(r'^admin/', admin.site.urls),
    url(r'^$',views.HomePage.as_view(),name='home'),
    url(r'^website/',include('website.urls',namespace='website')),
    url(r'^website/',include('django.contrib.auth.urls')),
    url(r'^website/',views.StreamyePage.as_view(),name='streamye'),
    url(r'^thanks/$',views.ThanksPage.as_view(),name='thanks'),
    url(r'^congrats/$',views.CongratsPage.as_view(),name='congrats'),
    url(r'^aboutus/$',views.AboutusPage.as_view(),name='about_us'),

HTML

代码语言:javascript
复制
<ul class="nav navbar-nav navbar-right">
            {% if user.is_authenticated %}
            <li><a href="{% url 'logout' %}">Logout</a></li>
            {% else %}
             <li><a href="{% url 'login' %}">Login</a></li>
             <li><a href="{% url 'sign_up' %}">Signup</a></li>
            {% endif %}
          </ul>

在上面的代码中,注册页面抛出了一个错误--“找不到'sign_up‘的django.urls.exceptions.NoReverseMatch: Reverse。'sign_up’不是一个有效的视图函数或模式名。”

请谁帮帮我,我哪里错了!提前感谢!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-10-18 01:20:03

您必须修复模板中的链接才能指向website urls:

代码语言:javascript
复制
 {% if user.is_authenticated %}
        <li><a href="{% url 'website:logout' %}">Logout</a></li>
        {% else %}
         <li><a href="{% url 'website:login' %}">Login</a></li>
         <li><a href="{% url 'website:sign_up' %}">Signup</a></li>
 {% endif %}
票数 11
EN

Stack Overflow用户

发布于 2020-04-14 23:56:06

OP在他们的网站/urls.py中使用了一个名称空间-因此它适用于所有这些名称空间。请注意,在那里,OP定义了登录注销-这与a

票数 0
EN

Stack Overflow用户

发布于 2022-01-18 10:27:08

在我的例子中,原因是会话cookie由于代码更改而损坏。

我通过在隐形模式下打开我的应用程序url解决了这个问题(这将创建新的会话cookie),

然后尝试非隐形普通url登录。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46795690

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档