Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在ListView Django中使用表单?_Python_Django - Fatal编程技术网

Python 如何在ListView Django中使用表单?

Python 如何在ListView Django中使用表单?,python,django,Python,Django,我正在尝试为ListView创建一个操作,该操作将删除或更改模型中表中的一个参数,例如,使用复选框禁用用户。 如果我选择了所有这些,并点击这个按钮,它将被删除所有选择 **views.py class AccountsManagementView(LoginRequiredMixin, generic.ListView): """ Class Based View para a manipulação de usuários. """ model = User

我正在尝试为ListView创建一个操作,该操作将删除或更改模型中表中的一个参数,例如,使用复选框禁用用户。 如果我选择了所有这些,并点击这个按钮,它将被删除所有选择

**views.py

class AccountsManagementView(LoginRequiredMixin, generic.ListView):
    """
    Class Based View para a manipulação de usuários.
    """
    model = User
    template_name = 'accounts/accounts_management.html'
    context_object_name = 'users'


    def get_queryset(self):
        return User.objects.all()

class DeleteUser(DeleteView):
    model = User
    success_url = reverse_lazy('accounts:accounts_manager')
**url.py

urlpatterns = [
    # ListView dos Usuarios
    url(r'^$', views.accounts_management, name="accounts_manager"),
    # Deletar Usuario
    url(r'^(?P<pk>\d+)/deleteuser/$', views.delete_user, name="delete_user"),
    # Add Usuario
    url(r'^adicionar_usuario/$', views.accounts_form, name="accounts_form"),
    # Update Usuario
    url(r'^editar/(?P<username>[\w_-]+)/$', views.account_edit, name="accounts_edit"),
    # Visualizar perfil usuario
    url(r'^visualizar/(?P<username>[\w_-]+)/$', views.account_view, name="accounts_view"),
]
urlpatterns=[
#使用列表视图
url(r'^$',views.accounts\u management,name=“accounts\u manager”),
#乌萨里奥酒店
url(r'^(?P\d+)/deleteuser/$,views.delete\u user,name=“delete\u user”),
#添加Usuario
url(r“^adicionar\u usuario/$”,views.accounts\u form,name=“accounts\u form”),
#更新Usuario
url(r'^editar/(?P[\w-]+)/$),views.account\u edit,name=“accounts\u edit”),
#视觉化操作
url(r'^visualizar/(?P[\w\u-]+)/$),views.account\u view,name=“accounts\u view”),
]
模板/accounts\u management.html

<form action="" method="post">
<div class="panel panel-default">
    <div class="panel-heading">
        <div class="panel-title">
            <a href="{% url 'accounts:accounts_form' %}"><button type="button" class="btn btn-success mb_sm">
                <i class="fa fa-user-plus" aria-hidden="true" aria-hidden="true"></i> Add User
            </button></a>
            <button type="button" class="btn btn-danger mb_sm">
                <i class="fa fa-user-times" aria-hidden="true" aria-hidden="true"></i> Del User
            </button>
        </div>
    </div>
    <div class="panel-body">
        <div class="table-responsive">
                <table class="table table-striped" id="datatables__example">
                    <thead>
                    <tr>
                        <th scope="col" class="-colaction-checkboxumn">
                        <span>
                            <input type="checkbox" name="account-users" id="action-toggle" hidden="hidden"/>
                            <label for="action-toggle"></label>
                        </span>
                        </th>
                        <th>Foto</th>
                        <th>Nome</th>
                        <th>Usuário</th>
                        <th>Grupo</th>
                        <th>E-mail</th>
                        <th>Status</th>
                        <th>Ativo</th>
                        <th>Ações</th>
                    </tr>
                    </thead>
                    <tbody>
                    {% for usuario in users %}
                        <tr class="row1">
                            <td class="action-checkbox">
                                <input class="action-select" id="_selected_action" name="account-users" type="checkbox" value="{{ usuario.id }}" hidden="hidden"/>

                            </td>
                            <td scope="row">
                                <div class="sidebar-user__avatar">
                                    <img src="{{ usuario.imagem|thumbnail_url:'user_image' }}">
                                </div>
                            </td>
                            <td>
                                <a href="{{ usuario.get_absolute_url }}">{{ usuario.name }}</a>
                            </td>
                            <td>{{ usuario.username }}</td>
                            <td>{% if usuario.groups.all.0 %}
                                {{ usuario.groups.all.0 }}
                            {% else %}
                                <span>Não Atribuído</span>
                            {% endif %}</td>
                            <td>{{ usuario.email }}</td>
                            <td>
                                {% if usuario.is_authenticated %}
                                    <i class="fa fa-circle-o fa-lg" style="color: #4aa74e;" aria-hidden="true"></i> Online
                                {% else %}
                                    <i class="fa fa-circle-o fa-lg" style="color: #ac2925;" aria-hidden="true"></i> Offline
                                {% endif %}
                            </td>
                            <td>
                                {% if usuario.is_active == True %}
                                    {% comment %}<img src="{% static 'assets/ico/correct-45-45.png' %}">{% endcomment %}
                                    <a href="#" class="col-xs-1"> <i class="fa fa-check fa-lg" style="color: #4aa74e;" title="Desativar Conta"></i></a>
                                {% else %}
                                    {% comment %}<img src="{% static 'assets/ico/incorrect-45-45.png' %}">{% endcomment %}
                                    <a href="#" class="col-xs-1"> <i class="fa fa-ban fa-lg" style="color: #ac2925;" title="Ativar Conta"></i></a>
                                {% endif %}
                            </td>
                            <td>
                                <span>&nbsp;&nbsp;&nbsp;</span>

                                <a href="{% url 'accounts:accounts_edit' username=usuario.username %}"> <i class="fa fa-pencil fa-lg" style="color: #464960;" title="Editar Conta"></i></a>

                                <span>&nbsp;&nbsp;&nbsp;</span>

                                <a href="{{ usuario.get_absolute_url }}"> <i class="fa fa-eye fa-lg" style="color: #ec971f;" title="Visualizar Conta"></i></a>
                            </td>
                        </tr>
                    {% endfor %}
                    </tbody>
                </table>

                </div>
            </div>
        </div>
</form>

删除用户
福托
诺姆
乌苏瓦里奥
格鲁波
电子邮件
地位
爱及屋
Ações
{用户%中的usuario为%0}
{{usuario.username}
{%if usuario.groups.all.0%}
{{usuario.groups.all.0}
{%else%}
Não Atribuído
{%endif%}
{{usuario.email}
{%if usuario.is_authenticated%}
在线 的
{%else%}
离线
{%endif%}
{%if usuario.is_active==True%}
{%comment%}{%endcomment%}
{%else%}
{%comment%}{%endcomment%}
{%endif%}
{%endfor%}

您可以做的是让表单返回您要删除的对象的主键列表

然后你做一些类似的事情:

def delete_view(request):
    if request.method == "post":
        data = [] # Array of pks
        User.objects.filter(pk__in=data).delete()
这应该符合你的要求


如果这对你没有帮助;也许谷歌会批量删除django。似乎是过去存在的功能,但现在不再受支持。

查看generic.UpdateView以获取使用post()方法的CBV示例。在这里,您可以导入表单、验证输入和处理—在您的示例中,查看每个复选框的值并相应地处理记录


您可能不需要像通用视图那样将逻辑分解为许多方法,除非您希望使其可重用。

感谢H.Boe的帮助。我可以这样做,也可以在ListView方法POST中使用基于类的视图。