django-registration“reset”重定向到“登录”?

时间:2014-02-24 10:03:04

标签: python django django-registration

django-registration'reset'未得到处理

在Django 1.6下使用django-registration 1.0。一切(注册,登录,注销,更改)都应该工作,除了“重置”,它只是重定向到登录表单。

我的urls.py看起来像这样:

urlpatterns = patterns('',
    url(r'^spellweb/', include('spellweb.urls', namespace="spellweb")),
    url(r'^admin/', include(admin.site.urls)),
    url(r'^accounts/', include('registration.backends.default.urls')),
)

与“重置”链接相关联的网址为:

http://localhost:8000/accounts/password/reset/

当该URL呈现给服务器时,返回302,将浏览器发送到登录页面,如下所示:

[24/Feb/2014 22:55:00] "GET /accounts/password/reset/ HTTP/1.1" 302 0
[24/Feb/2014 22:55:01] "GET /accounts/login/?next=/accounts/password/reset/ HTTP/1.1" 200 1795
[24/Feb/2014 22:55:01] "GET /style.css HTTP/1.1" 302 0
[24/Feb/2014 22:55:01] "GET /accounts/login/?next=/style.css HTTP/1.1" 200 1780
[24/Feb/2014 22:55:01] "GET /accounts/login/?next=/favicon.ico HTTP/1.1" 200 1782

只是为了让自己完全清楚问题不仅仅是重置表单没有被处理 - 系统甚至不会提供'重置'表单。

所以...如果有人会建议为什么会发生这种情况和/或确认他们使用Django 1.6 / django-registration 1.0获得其他结果,我会很高兴。

由于


有关Mario Gudelj的更多信息: 是的我相信我正在使用你引用的auth_urls。我这说的原因是我的urls.py中引用的'registration.backends.default.urls'依次引用'registration.auth_urls'。我不知道为什么这不会产生我期望的效果。我想确定auth_urls中的url对象正在被使用,但我无法找到一种方法来确定哪个django.conf.urls.patterns实例对于任何给定的请求都是活动的 - 如果我能找到它会很好这样做的方法。


有关Alasdair评论的更多信息: ROOT_URLCONF指向上面显示的urls.py,其全部内容如下:

from django.conf.urls import patterns, include, url
# Uncomment the next two lines to enable the admin:
from django.contrib import admin
admin.autodiscover()

#url(r'^accounts/', include('auth_urls')),

urlpatterns = patterns('',
    url(r'^spellweb/', include('spellweb.urls', namespace="spellweb")),
    url(r'^admin/', include(admin.site.urls)),
    url(r'^accounts/', include('registration.backends.default.urls')),
)
~

引用的spellweb.urls如下(没有什么因为在做其他事情之前试图让注册工作)......

from django.conf.urls import patterns, url

from spellweb import views

urlpatterns = patterns('',
    url(r'^$', views.IndexView.as_view(), name='index'),
)
#    url(r'^(?P<pk>\d+)/$', views.DetailView.as_view(), name='detail'),
#    url(r'^(?P<pk>\d+)/results/$', views.ResultsView.as_view(), name='results'),
~

registration.backends.default.urls引用的内容符合https://bitbucket.org/ubernostrum/django-registration/src/8f242e35ef7c004e035e54b4bb093c32bf77c29f/registration/backends/default/urls.py?at=default,而后者又引用:https://bitbucket.org/ubernostrum/django-registration/src/8f242e35ef7c004e035e54b4bb093c32bf77c29f/registration/auth_urls.py?at=default

1 个答案:

答案 0 :(得分:0)

您使用的是https://bitbucket.org/ubernostrum/django-registration/src/8f242e35ef7c004e035e54b4bb093c32bf77c29f/registration/auth_urls.py?at=default吗?

似乎auth_urls.py有该URL,并且它使用django.contrib.auth.views中的Django通用password_reset视图。

确保您没有更改该文件中的网址结构,并且此代码仍然在那里:

url(r'^password/reset/$',
                           auth_views.password_reset,
                           name='auth_password_reset'),

好像你已经设法将login_required装饰器放在该视图周围。