Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/19.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
Django admin复选框具有多个选择项_Django_Checkbox_Django Admin_Manytomanyfield - Fatal编程技术网

Django admin复选框具有多个选择项

Django admin复选框具有多个选择项,django,checkbox,django-admin,manytomanyfield,Django,Checkbox,Django Admin,Manytomanyfield,我有一个Django应用程序。这是很基本的 在模型中,我有一个用于项目的类和一个用于组的类。这些组对项目具有多对多的权限: items = models.ManyToManyField(item, verbose_name="list of items", max_length=100000, blank=True) 当我将其添加到管理部分时,我希望有一个带有多个选择的复选框。这可能吗。我看过的所有解决方案也没有在管理页面的上下文中使用。Django管理页面是我所需要的全部,因为我没有制作任何

我有一个Django应用程序。这是很基本的

在模型中,我有一个用于项目的类和一个用于组的类。这些组对项目具有多对多的权限:

items = models.ManyToManyField(item, verbose_name="list of items", max_length=100000, blank=True)
当我将其添加到管理部分时,我希望有一个带有多个选择的复选框。这可能吗。我看过的所有解决方案也没有在管理页面的上下文中使用。Django管理页面是我所需要的全部,因为我没有制作任何定制的面向公众的页面

用多个复选框替换多个选择框的最简单和最简单的解决方案是什么

另外,我对Django比较有经验,所以我需要看看我需要在模型和管理中导入什么


谢谢

如果您知道如何为标准modelform执行此操作,您也知道如何在管理页面中执行此操作,因为它们基于常规表单

只需将表单定义为普通表单,然后告诉管理员将其用于您的模型:

class MyModelAdmin(admin.ModelAdmin):
    form = MyFormWithTheMultipleSelect

如果您知道如何为标准模型表单执行此操作,那么您也知道如何在管理页面中执行此操作,因为它们是基于普通表单的

只需将表单定义为普通表单,然后告诉管理员将其用于您的模型:

class MyModelAdmin(admin.ModelAdmin):
    form = MyFormWithTheMultipleSelect

基于重写管理模板的方法

/myproject/templates/admin/myapp/mymodel/change\u form.html

{%extends“admin/change\u form.html”%}
{{block.super}}
$(文档).ready(函数(){
myselect=$(“#id_M2M_字段_名称”);
//在这里,您可以使用多重选择进行操作,
//并将其转换为复选框或其他内容。
})
{%endblock%}

基于覆盖管理模板的方式

/myproject/templates/admin/myapp/mymodel/change\u form.html

{%extends“admin/change\u form.html”%}
{{block.super}}
$(文档).ready(函数(){
myselect=$(“#id_M2M_字段_名称”);
//在这里,您可以使用多重选择进行操作,
//并将其转换为复选框或其他内容。
})
{%endblock%}

我仍然无法让它工作,所以我决定现在我将使用:filter\u horizontal=('items',)我仍然无法让它工作,所以我决定现在我将使用:filter\u horizontal=('items',)
{% extends "admin/change_form.html" %}
{{ block.super }} 
<script type='text/javascript' src='/media/js/jquery.js'></script>
<script>
    $(document).ready(function(){
        myselect = $("#id_M2M_FIELD_NAME");

        // here you manipulating with your multiple select,
        // and convert it to checkboxes, or something else.   

    })
</script>
{% endblock %}