You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为Django的users应用同时配置默认认证URL与自定义URL?

Django同时关联默认认证URL与自定义用户应用URL的实现

你给出的主路由配置写法是完全可行的,Django会按照urlpatterns里的顺序依次匹配路由规则,下面是具体的配置细节和注意事项:

1. 主路由配置的逻辑说明

你写的这段代码没问题:

from django.urls import path, include

urlpatterns = [
    path('users/', include("django.contrib.auth.urls")), # 关联Django默认登录、登出等认证路由
    path('users/', include('users.urls')), # 关联自定义用户应用的注册、资料等路由
]

Django会优先匹配django.contrib.auth.urls里的默认认证路由,未匹配到的路径才会去匹配users.urls中的自定义路由,两者不会冲突。

默认的django.contrib.auth.urls包含以下路由:

  • users/login/(登录)
  • users/logout/(登出)
  • users/password_change/(修改密码)
  • users/password_change/done/(修改密码完成)
  • users/password_reset/(重置密码)
  • users/password_reset/done/(重置密码邮件发送完成)
  • users/reset/<uidb64>/<token>/(重置密码确认页面)
  • users/reset/done/(重置密码完成)

2. 配置自定义用户应用的urls.py

在users应用目录下创建urls.py文件,添加你的自定义路由,示例如下:

from django.urls import path
from . import views

urlpatterns = [
    path('register/', views.register, name='register'),  # 自定义注册路由
    path('profile/', views.profile, name='profile'),      # 自定义个人资料路由
]

配置完成后,访问users/register/会触发自定义注册视图,users/profile/会触发个人资料视图,和默认认证路由互不干扰。

3. 自定义登录模板的配置

默认登录视图会自动查找registration/login.html模板,如果你想把模板放在users应用的模板目录下,只需确保settings.py中TEMPLATES的APP_DIRS设为True,然后在users/templates/registration/目录下创建login.html即可,Django会自动识别该模板。

4. 自定义用户模型的配套设置

由于你使用了自定义用户模型,必须在settings.py中添加以下配置,确保Django使用你的自定义用户模型进行认证:

AUTH_USER_MODEL = 'users.你的自定义用户模型类名'

内容的提问来源于stack exchange,提问作者Ahmed Ashraf

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 23:55:23