在django中使用ModelChoiceField进行搜索

时间:2016-03-31 07:56:33

标签: django forms search

假设我有一个表单字段如下:

admin = forms.ModelChoiceField(queryset=Profile.objects.all(),
    help_text=_('select an admin for this organization'),
    label=_('Organization Admin'),
)

在模板中呈现此表单时,我可以在该字段上看到一个下拉按钮,并可以选择一个项目。

但是项目数量太多,以至于我很难选择一个。

我想在下拉列表的顶部找到一个搜索选项。

有可能吗?如果可能,怎么样?

2 个答案:

答案 0 :(得分:2)

部分来自我的代码:

from django.contrib.admin.widgets import FilteredSelectMultiple

class WorkForm(forms.Form):
    materials = forms.ModelMultipleChoiceField(label=_('Materials'), queryset=Goods.objects.filter(deleted=False), required=False, widget=FilteredSelectMultiple(_('materials'), True))

    class Media:
        css = {
                'all': (
                          '/static/admin/css/widgets.css',
                          '/static/css/widgets.css',
                       )
              }
        js = [
                '/admin/jsi18n/'
             ]

或者您可以使用https://github.com/applegrew/django-select2

答案 1 :(得分:1)

这个django插件非常有用:https://pypi.python.org/pypi/django-simple-autocomplete/

它适用于jQuery,因此您必须确保jQuery正常工作。您只需按照四个安装步骤调整表单模型即可。

希望这有帮助。