更改被覆盖模板的URL



在我的网站上,user通过访问以下地址访问他们的帐户:

http://127.0.0.1:8000/users_area/username/profile

在那里,他们会发现一个按钮"更改密码"(一个被覆盖的django模板(,它会把他们带到:

http://127.0.0.1:8000/accounts/password/change/

它很小,我可能太挑剔了,但有可能保留这个被覆盖的模板,但更改它的url吗?相反,我希望change passwordurl类似于:

http://127.0.0.1:8000/users_area/username/password/change/

我曾尝试在用户的应用程序中创建一个模板,将"更改密码"模板内容复制到其中,然后链接到它而不是覆盖的"更改密码"模板,但(显然,事后看来(它不起作用。


我会补充一下。我实际上有两种用户类型,userspowerusers。每个都有一个独特的、相当不同的"users_area":

http://127.0.0.1:8000/users_area/username/profile

http://127.0.0.1:8000/powerusers_area/username/profile

如果我得到了上述问题的答案,我实际上希望将其应用于我的两种不同用户类型(应该不难,但我认为我应该提到它(。

谢谢。

如果你想自定义它们,即使有一个自定义的MyUser模型,你仍然可以像这个一样重用Django中的很多

# authentication
path('user_register', user_register_view, name='user_register'),
path('login', login_view, name='login'),
path('logout', logout_view, name='logout'),
path('change_password', change_password_view, name='change_password'),
path('reset_password/',
auth_views.PasswordResetView.as_view(template_name="MyUser/password_reset.html"),
name="reset_password"),
path('reset_password_sent/',
auth_views.PasswordResetDoneView.as_view(template_name="MyUser/password_reset_sent.html"),
name="password_reset_done"),
path('reset/<uidb64>/<token>/',
auth_views.PasswordResetConfirmView.as_view(template_name="MyUser/password_reset_form.html"),
name="password_reset_confirm"),
path('reset_password_complete/',
auth_views.PasswordResetCompleteView.as_view(template_name="MyUser/password_reset_done.html"),
name="password_reset_complete"),
path('profile/<username>', profile_view, name='profile'),

您可以执行以下操作urls.py

from django.contrib.auth import views as auth_views
urlpatterns = i18n_patterns(
# other URLS
path('/users_area/username/password/change/', auth_views.PasswordChangeView.as_view, name='change_password'),
# more URLS from auth?
)

最新更新