我将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选项。
任何帮助都是非常感谢的。谢谢!
发布于 2019-08-13 22:01:17
您的institution字段是CharField,而不是ModelChoiceField。这就是这一行不正确的原因:
form.fields['institution'].initial = current_institution https://stackoverflow.com/questions/45283717
复制相似问题