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
答案 0 :(得分:0)
似乎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装饰器放在该视图周围。