【发布时间】:2017-11-17 01:17:09
【问题描述】:
我想用命名空间管理一个单独的 urls.py。
conf/
urls.py (1)
common/
urls.py (2)
(1) 是系统范围的 urls.py,由 Django 安装,我制作了 (2),它有索引页面和“帐户”身份验证页面。
(1) urls.py 包含带有命名空间“common”的 common.url
url(r'^', include('common.urls', namespace='common')),
(2) urls.py 声明如下:
url(r'^accounts/', include('django.contrib.auth.urls')),
url(r'^accounts/register/$', UserCreateView.as_view(), name='register'),
url(r'^accounts/register/done/$', UserCreateDoneTemplateView.as_view(), name='register_done'),
以下 url 被 Django 正确反转。
{% url 'common:login' %}
{% url 'common:logout' %}
{% url 'common:password_change' %}
{% url 'common:register' %}
但是,“common:password_change_done”没有反转,我遇到了“NoReverseMatch”错误。
当然,url 声明放在系统范围的 urls.py (1) 中。我只是想知道是否可以将其拆分为一个单独的应用程序 (2)。
谢谢。
【问题讨论】:
-
你能显示完整的错误和回溯吗?
-
Django 身份验证 URL 已经在命名空间
auth中。试试{% url 'auth:login' %}或{% url 'common:auth:login' %} -
@Alasdair 对于这么晚的反馈,我深表歉意。我没有包含 auth.urls,但我知道以下视图需要使用正确的命名空间设置“success_url”。 PasswordChangeView.as_view(success_url=reverse_lazy('common:password_change_done'))、PasswordResetView.as_view(success_url=reverse_lazy('common:password_reset_done'))、PasswordResetConfirmView.as_view(success_url=reverse_lazy('common:password_reset_complete'))、跨度>
-
对不起,我不明白你的评论。如果您已经解决了您的问题,您可以将其添加为答案。如果您仍然卡住,请编辑您的原始问题。
-
@Alasdair,我很抱歉我的英语不好,希望我下面的帖子能帮助你理解。谢谢。
标签: django django-registration