要覆盖Django的管理更改密码页面,您需要遵循以下步骤:
custom_admin
,以便存储自定义管理模板和静态文件。python manage.py startapp custom_admin
custom_admin
应用程序中,创建一个名为templates
的子目录,并在其中创建一个名为admin
的子目录。custom_admin/templates/admin
目录中,创建一个名为password_change_form.html
的文件。password_change_form.html
文件,并在其中添加以下内容:{% extends "admin/base_site.html" %}
{% block title %}Change Password{% endblock %}
{% block content %}
<div id="content-main">
<h2>Change Password</h2>
<form method="post" action="">
{% csrf_token %}
{{ form.as_p }}
<input type="submit" value="Change Password">
</form>
</div>
{% endblock %}
custom_admin
应用程序中,创建一个名为static
的子目录,并在其中创建一个名为css
的子目录。custom_admin/static/css
目录中,创建一个名为custom_admin.css
的文件。custom_admin/static/css/custom_admin.css
文件,并在其中添加以下内容:body {
background-color: #f0f0f0;
}
#content-main {
background-color: #ffffff;
padding: 20px;
margin: 20px;
border-radius: 5px;
}
h2 {
margin-top: 0;
}
input[type="submit"] {
background-color: #4CAF50;
color: white;
padding: 10px 20px;
border: none;
border-radius: 5px;
cursor: pointer;
}
input[type="submit"]:hover {
background-color: #45a049;
}
custom_admin
应用程序的__init__.py
文件中,添加以下内容:from django.contrib.admin import site
from django.urls import path
from . import views
site.register_view('password_change', 'password_change_form.html', views.password_change_view)
urlpatterns = [
path('admin/password_change/', site.password_change_view, name='password_change'),
]
custom_admin
应用程序中,创建一个名为views.py
的文件,并在其中添加以下内容:from django.contrib.auth.decorators import login_required
from django.contrib.auth.forms import PasswordChangeForm
from django.contrib.auth import update_session_auth_hash
from django.shortcuts import render, redirect
@login_required
def password_change_view(request):
if request.method == 'POST':
form = PasswordChangeForm(request.user, request.POST)
if form.is_valid():
user = form.save()
update_session_auth_hash(request, user)
return redirect('password_change')
else:
form = PasswordChangeForm(request.user)
return render(request, 'admin/password_change_form.html', {'form': form})
custom_admin
应用程序的urls.py
文件中,添加以下内容:from django.urls import path
from . import views
urlpatterns = [
path('admin/password_change/', views.password_change_view, name='password_change'),
]
settings.py
文件中,将custom_admin
应用程序添加到INSTALLED_APPS
列表中:INSTALLED_APPS = [
# ...
'custom_admin',
# ...
]
urls.py
文件中,将custom_admin
应用程序的URL配置添加到urlpatterns
列表中:from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('custom_admin.urls')),
]
现在,您已经成功覆盖了Django的管理更改密码页面。您可以通过访问/admin/password_change/
来查看自定义页面。
领取专属 10元无门槛券
手把手带您无忧上云