如何覆盖管理员的密码更改视图逻辑?

How to override admin's password change view logic?

Django 文档说要使用 path('accounts/', include('django.contrib.auth.urls')) 但我不希望它有“accounts/” url 相反我只希望它保持为“admin/”。但是我尝试像这样覆盖它

# project urls.py
urlpatterns = [
    path('admin/', admin.site.urls),
    path('admin/password_change/', CustomPasswordChangeView.as_view(), name='password_change'),
]
from django.contrib.auth.views import PasswordChangeView
from django.contrib.auth.forms import PasswordChangeForm

class CustomPasswordChangeView(PasswordChangeView):
    form_class = PasswordChangeForm
    success_url = reverse_lazy('password_change_done')
    template_name = 'registration/password_change_form.html'
    title = _('Password change21312312313132133')

    def get_form_kwargs(self):
        kwargs = super().get_form_kwargs()
        kwargs['user'] = self.request.user
        print(kwargs['user'])
        print(self.success_url)
        return kwargs

    def form_valid(self, form):
        form.save()
        # Updating the password logs out all other sessions for the user
        # except the current one.
        update_session_auth_hash(self.request, form.user)
        return super().form_valid(form)

我试图更改标题变量值,以便查看它是否有效,但它似乎没有使用我制作的自定义视图。知道为什么以及如何解决它吗?

URL 模式是自上而下阅读的,因此如果您先将 url 模式与 password_change 互换,那么它将优先并覆盖默认管理 url 如果存在重复项。