yel*_*cap 19 django url-pattern django-registration django-1.6
我正在尝试将我的webapp从Django 1.5升级到Django 1.6,并且作为我的django应用程序集的一部分,我正在使用django-registration 1.0.
升级到Django 1.6后,我的应用程序无法识别内置的身份验证视图.它们都集成在Django登记可以看出这里,但他们停止工作.
Django发行说明描述了这些视图应该集成的方式的变化,将其与注册应用程序中看起来很好的源代码进行比较.
我正在介绍注册网址如下:
urlpatterns = patterns('',
...,
url(r'^accounts/', include('registration.backends.default.urls')),
)
Run Code Online (Sandbox Code Playgroud)
我在请求内置网址时遇到错误,例如 /accounts/password/change/
django.core.urlresolvers.NoReverseMatch
NoReverseMatch: Reverse for 'password_change_done' with arguments '()' and keyword arguments '{}' not found. 0 pattern(s) tried: []
Run Code Online (Sandbox Code Playgroud)
有谁知道为什么我会得到无反向匹配错误?
Jan*_*nis 35
出现此错误的原因是django.contrib.auth.views使用不同的url名称registration.auth_urls.要修补此问题,请覆盖默认URL,直到django-registration更新为django 1.6,并使用与Django相同的名称.
from django.contrib.auth import views as auth_views
urlpatterns = patterns('',
#override the default urls
url(r'^password/change/$',
auth_views.password_change,
name='password_change'),
url(r'^password/change/done/$',
auth_views.password_change_done,
name='password_change_done'),
url(r'^password/reset/$',
auth_views.password_reset,
name='password_reset'),
url(r'^password/reset/done/$',
auth_views.password_reset_done,
name='password_reset_done'),
url(r'^password/reset/complete/$',
auth_views.password_reset_complete,
name='password_reset_complete'),
url(r'^password/reset/confirm/(?P<uidb64>[0-9A-Za-z]+)-(?P<token>.+)/$',
auth_views.password_reset_confirm,
name='password_reset_confirm'),
#and now add the registration urls
url(r'', include('registration.backends.default.urls')),
)
Run Code Online (Sandbox Code Playgroud)
这是我用过的:
url(r'', include('registration.backends.default.urls')),
url(r'', include('django.contrib.auth.urls')),
Run Code Online (Sandbox Code Playgroud)
Django contrib现在包括丢失的URL
| 归档时间: |
|
| 查看次数: |
7791 次 |
| 最近记录: |