Как разрешить администратору обновлять пароль и имя пользователя сотрудников django
Я создал страницу, на которой администратор может обновить пароль и имя пользователя, когда администратор нажимает на кнопку обновления, она должна перенаправлять администратора на страницу обновления, когда он нажимает на кнопку обновления, где он заполняет новое имя пользователя и пароль для персонала, но возникает ошибка, показанная ниже.
На рисунке ниже показано, как будет выглядеть администраторская часть:
views.py
def update(request, id):
context = {}
user = get_object_or_404(User, id=id)
if request.method == "POST":
user.save()
return HttpResponseRedirect("/update")
return render(request, 'allstaff.html', context)
urls.py
urlpatterns = [
path('register/', views.register, name='register'),
path('adminpage/', views.admin, name='adminpage'),
path('customer/', views.customer, name='customer'),
path('logistic/', views.logistic, name='logistic'),
path('forget/', views.forget, name='forget'),
path('newblock/', views.newblock, name='newblock'),
path('quote/', views.quote, name='quote'),
path('profile/', views.profile, name='profile'),
path('adminprofile/', views.adminprofile, name='adminprofile'),
path('', views.login_user, name='login'),
path('home/', views.home, name='home'),
path('allstaff/', views.allstaff, name='allstaff'),
path('delete/<int:id>/', views.delete, name='delete'),
path('update/<int:id>/', views.update, name='update'),
path('logout/', views.logout_view, name='logout'),
path('register/', views.register_view, name='register'),
path('edit-register/', views.edit_register_view, name='edit_register'),
]
allstaff.html
{% extends "home.html" %}
{% block content %}
<style>
table {
border-collapse:separate;
border:solid black 1px;
border-radius:6px;
-moz-border-radius:6px;
}
td, th {
border-left:solid black 1px;
border-top:solid black 1px;
}
th {
border-top: none;
}
td:first-child, th:first-child {
border-left: none;
}
</style>
<div style="padding-left:16px">
<br>
<div class="form-block">
<table>
<tr>
<th>Staff Name</th>
<th>Staff Username</th>
<th>Email</th>
<th>Date Joined</th>
<th>Admin</th>
<th>Customer Service</th>
<th>Logistic</th>
<th>Action</th>
</tr>
{% for user in allusername %}
<tr>
<td>{{user.first_name}} {{user.last_name}}</td>
<td>{{user.username}}</td>
<td>{{user.email}}</td>
<td>{{user.date_joined}}</td>
<td>{{user.is_admin}}</td>
<td>{{user.is_customer}}</td>
<td>{{user.is_logistic}}</td>
<td>
<form action="{% url 'update' user.id %}" method="post">
{% csrf_token %}
<button type="submit" class="btn btn-sm btn-info">Update</button>
</td>
<td>
<form action="{% url 'delete' user.id %}" method="post">
{% csrf_token %}
<button type="submit" class="btn btn-sm btn-danger">Delete</button>
</form>
</td>
</tr>
{% endfor %}
</table>
<br>
<h5>*Note: True means that the staff is in this role, False means that the staff is not in this role.</h5>
<h6>*Note: You are 8 hours ahead of the server time.</h6>
</div>
</div>
{% endblock %}
update.html (куда он должен перенаправлять администратора)
Я не уверен, что я упускаю, и если это правильный способ обновить пароль персонала и сохранить его обратно в базу данных.