django创建用于编辑我所有用户个人资料的表单列表

时间:2018-10-12 16:31:48

标签: django django-forms django-views

我正在尝试创建一个页面,以允许查看和修改某些用户详细信息,而不授予完全的管理员访问权限。 我的想法是从已经用每个用户详细信息填充的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 %}

0 个答案:

没有答案