django-registration 中的 Urls 配置
Posted
技术标签:
【中文标题】django-registration 中的 Urls 配置【英文标题】:Urls config in django-registration 【发布时间】:2013-10-15 11:44:40 【问题描述】:我想我错过了一些小东西,但我不知道在哪里。
使用 django-registrationn,我有一个这样的 urls 配置:
mysite/urls.py:
url(r'^accounts/', include('registration.backends.vince.urls')),
注册/后端/vince/urls.py:
urlpatterns = patterns('',
url(r'^activate/complete/$',
TemplateView.as_view(template_name='registration/activation_complete.html'),
name='registration_activation_complete'),
# Activation keys get matched by \w+ instead of the more specific
# [a-fA-F0-9]40 because a bad activation key should still get to the view;
# that way it can return a sensible "invalid key" message instead of a
# confusing 404.
url(r'^activate/(?P<activation_key>\w+)/$',
ActivationView.as_view(),
name='registration_activate'),
url(r'^register/$',
RegistrationView.as_view(),
name='registration_register'),
url(r'^register/complete/$',
TemplateView.as_view(template_name='registration/registration_complete.html'),
name='registration_complete'),
url(r'^register/closed/$',
TemplateView.as_view(template_name='registration/registration_closed.html'),
name='registration_disallowed'),
(r'', include('registration.auth_urls')),
)
在registration/auth_urls.py中:
urlpatterns = patterns('',
url(r'^login/$',
auth_views.login,
'template_name': 'registration/login.html',
name='auth_login'),
url(r'^logout/$',
auth_views.logout,
'template_name': 'registration/logout.html',
name='auth_logout'),
url(r'^password/change/$',
auth_views.password_change,
name='auth_password_change'),
url(r'^password/change/done/$',
auth_views.password_change_done,
name='auth_password_change_done'),
url(r'^password/reset/$',
auth_views.password_reset,
'template_name': 'registration/password_reset_form.html',
name='auth_password_reset'),
当我打开我的 url /accounts/login 时,我会得到我的模板 registration/login.html。
但是当我请求 /accounts/password/reset 时,我得到了 django 的管理模板,而我正在等待注册/password_reset_form.html
你能帮忙吗?
【问题讨论】:
您的重置 URL 在urls.py
的末尾有一个 "/"
,但在您的 /accounts/password/reset
示例中没有。尝试在末尾添加/
,看看是否有效。
我不确定您是否在其中输入了错字,但您在最新评论中复制并粘贴了两次相同的 URL。
@themanatuf:没有变化。如果我尝试“/accounts/password/reset/”或“/accounts/password/reset”,我会得到相同的结果
我看到你没有为你的视图使用命名空间,这是 Django 建议你做的。 registration/password_reset_form.html
可能指的是内置的 Django 模板。你试过不同的文件名吗?
它适用于不同的文件名!但我对命名空间感到困惑。当我在我的根 url 中添加一个 namespace="accounts" 时,一切都会失败:(
【参考方案1】:
这是默认的
TEMPLATE_LOADERS = (
'django.template.loaders.filesystem.Loader',
'django.template.loaders.app_directories.Loader',
)
要激活filesystem.Loader
,您需要在TEMPLATE_DIRS
中指定目录
【讨论】:
【参考方案2】:我和你有同样的问题。好像有issues of incompatibility between Django 1.6/7 and django-registration。
编辑:这个来自 Calvin Cheng 的 single bit 为我工作:
...确保您的 django.contrib.admin 应用程序行位于您的注册应用程序行下方;否则,它将优先使用 django.contrib.admin 的注册模板...
【讨论】:
请在您的回答中包含所有必要的详细信息,而不是链接到网站外的资源。以上是关于django-registration 中的 Urls 配置的主要内容,如果未能解决你的问题,请参考以下文章