python - django 身份验证 URL 的默认命名空间是什么?

标签 python django namespaces django-urls django-authentication

我更改了我的应用程序的 urls.py拥有一个命名空间 app_name = 'somename' .然后做了这些,

  • 已更改 reverse('url-name')reverse('somename:url-name') .
  • 已更改 {% url 'url-name' %}{% url 'somename:url-name' %} .
  • 改了 {% if request.resolver_match.url_name == "url-name" %}{% if request.resolver_match.url_name == "somename:url-name" %} .

  • 对于 accounts应用程序,我只有两个自定义 View loginsignup .所以一个 reverse喜欢 reverse('accounts:login')正在工作,但 reverse('accounts:password_reset') (默认 django 身份验证的一部分)不起作用。

    这是我尝试过的,
  • 已替换 reverse('accounts:password_reset')reverse('auth:password_reset') .
  • 已替换 reverse('accounts:password_reset')reverse('password_reset') .

  • 解决方案 1 不起作用。解决方案 2 有效。我也试过改变 path('accounts/', include('django.contrib.auth.urls'))在我的项目中 urls.pypath('accounts/', include('django.contrib.auth.urls', namespace='auth'))path('accounts/', include('django.contrib.auth.urls, namespace='accounts')) .都没有工作。

    项目/urls.py

    urlpatterns = [
        path('', include('core.urls')),
        path('admin/', admin.site.urls),
        path('accounts/', include('accounts.urls')),
        path('accounts/', include('django.contrib.auth.urls')),
        path('books/', include('library.urls'))
    ]
    

    帐户/urls.py

    app_name = 'accounts'
    urlpatterns = [
        path('signup/', views.CustomSignup.as_view(), name='signup'),
        path('login/', views.CustomLogin.as_view(), name='login'),
    ]  
    

    为什么要命名空间 password_resetaccountsauth失败?是否有可以使用默认命名空间的文档页面?

    最佳答案

    据我所知,通过阅读源代码,它们根本没有命名空间,您通常只能像现在一样通过名称来引用它们。

    如果你想让它们命名空间,你可以将它们包含在你的 accounts 中。 ' urlpatterns , 而不是您的项目并手动添加命名空间:

    app_name = 'accounts'
    urlpatterns = [
        path('signup/', views.CustomSignup.as_view(), name='signup'),
        path('login/', views.CustomLogin.as_view(), name='login'),
        path('', include('django.contrib.auth.urls', namespace='accounts')),
    ]
    

    关于python - django 身份验证 URL 的默认命名空间是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62192132/

    相关文章:

    python - 使用 wxPython 在 Python 中的文本上鼠标事件

    python - 如何将跨多行的括号之间的值放入 python 的列表中?

    Django:在 View 中获取 ImageField url

    ruby-on-rails - Rails 4 - 带有命名空间的 STI

    python - Odoo v8 中的电子邮件验证

    python - Django 按月注释分组

    javascript - 附加值为 bool 值 false 的 FormData 字段会导致该函数失败。

    django - 操作错误没有这样的表 Django

    带/不带命名空间的 XML

    vb.net - MySql.Data.MySqlClient 显示令人困惑的错误