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

时间:2013-04-24 22:25:41

标签: django django-forms many-to-many

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

感谢...

1 个答案:

答案 0 :(得分:8)

您需要使用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