Django - 在管理员之外使用多对多水平界面

标签 django django-forms many-to-many

我正在使用带有 m2m 字段的表单。我希望这个字段看起来像 django 管理站点的水平界面......我该怎么做?

谢谢...

最佳答案

您需要使用 FilteredSelectMultiple小部件

from django.contrib.admin.widgets import FilteredSelectMultiple
from django import forms
from .models import Person


class PersonForm(forms.ModelForm):
    some_field = forms.ModelMultipleChoiceField(Person.objects.all(), widget=FilteredSelectMultiple("Person", False, attrs={'rows':'2'}))
    class Meta:
        model = Person   

您还需要包含管理中使用的 Javascript 和 CSS。这是一个 example

关于Django - 在管理员之外使用多对多水平界面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16203287/

相关文章:

django - 高效删除 Django 中孤立的 m2m 对象/标签

database - 如何否定或最小化具有多个 "many to many"关系的重复数据库记录(行)

c# - 在 EntityFramework 中,如何重新加载多对多关系中的实体?

python - os.path.dirname(os.path.abspath(__file__)) 和 os.path.dirname(__file__) 的区别

python - Docker Compose 和 Django 生成器语法错误

python - 带有 filter() 和 order_by() 的查询集 distinct() 不起作用

django - 在 Django 中,当登录用户提交表单时,如何自动将用户名添加到模型中

Django ModelForm-如何使生成的表单不可编辑

javascript - Django-动态表单增量ID为表单集中添加的每个新输入元素

django - 创建多值字段用于在用户配置文件 Django 中存储用户技能集