如何在Django中设置Django-Select2小部件的初始值

时间:2017-07-24 14:52:08

标签: jquery django jquery-select2

我正在使用django-select2插件,该字段允许用户从数据库中的列表中选择一个机构(由AJAX驱动),并且它工作正常。这是forms.py

中的字段
    institution = forms.CharField(
    widget = ModelSelect2Widget(
        queryset=Institution.objects.all(),
        attrs={'class': 'form-control'},
        model=Institution,
        search_fields=['name__icontains'],
        max_results=500,
    ),

使用相同的表格,用户可以编辑/更改以前选择的学院。 但是,为此,我想将该字段的初始选定值设置为先前选择的机构。 这给我带来了很多麻烦,因为我无法为插件设置初始值,尽管尝试了很多东西。

理想情况下,我希望在不使用任何Javascript(仅使用Django表单选项)的情况下设置插件的初始值,例如:

current_instutition = Institution.objects.get(user=page_user)
form.fields['institution'].initial = current_institution  

(上述不起作用)

我尝试使用Select2占位符选项在页面加载期间使用以下Javascript代码手动设置此选项:

$("#id_institution").djangoSelect2({
                    placeholder: {
                        id: '123',
                        text: 'My Institution'
                        }
                    });

这似乎根本没有做任何事情。(插件仍然加载,空的(或没有)占位符)。我不确定django-select2是否会覆盖手动的Select2选项。< / p>

感谢任何帮助。谢谢!

1 个答案:

答案 0 :(得分:1)

您的institution字段是CharField,而不是ModelChoiceField。这就是该行不正确的原因:

form.fields['institution'].initial = current_institution