我正在尝试创建一个页面,以允许查看和修改某些用户详细信息,而不授予完全的管理员访问权限。 我的想法是从已经用每个用户详细信息填充的UserChangeForm中列出元素。 例如 名:| user_1的名字|姓:| user_1的姓|有效|√| 名字:| user_2的名字|姓:| user_2的姓||活跃| 名字:| user_3的名字|姓:| user_3的姓|有效|√| 等等
允许直接从该页面查看,更改和提交。 我编写的视图从数据库中正确提取了信息。网页会创建该列表,但是列表中的每个条目都具有相同的用户数据。
我知道为什么会这样,但是我现在正兜圈子,试图思考如何使其正确显示。
查看:-
def profiles(request):
"""Show all users details"""
users = User.objects.all().order_by('last_name')
# print(str(users))
for user in users:
if user.is_superuser == False:
print("\n" + user.first_name + ' ' + user.last_name + ' ' + user.username + ' ' + user.email)
if request.method != 'POST':
form = UserChangeForm(instance=user)
else:
form = UserChangeForm(instance=user, data=request.POST)
if form.is_valid():
form.save()
context = {'users': users, 'form': form}
return render(request, 'users/profiles.html', context)
模板:-
{% block content %}
<ul>
{% for user in users %}
<li>
<form action="{% url 'users:profiles' %}" method="post" class="form">
{% csrf_token %}
First Name: {{ form.first_name }} Last Name: {{ form.last_name }} Username: {{ form.username }} Group: {{ form.groups }} Active: {{ form.is_active }}
</form>
</li>
{% empty %}
<li>There are currently no users registered.<br />Please add a new event to continue.</li>
{% endfor %}
</ul>
{% endblock content %}