问题描述
我的问题是,我不知道如何在更新操作中使用表单,以便存储的数据与自动完成功能一起显示。
我该如何解决?
我的表格
set the clipboard to "Some funky text"
我的管理员
class ModelSEOMetadatumForm(forms.ModelForm):
name = ModelChoiceField(
required=False,queryset=MetaTag.objects.exclude(name__isnull=True).values_list('name',flat=True).distinct(),widget=autocomplete.ModelSelect2(url='SEO:name-autocomplete')
)
property = ModelChoiceField(
required=False,queryset=MetaTag.objects.exclude(property__isnull=True).values_list('property',widget=autocomplete.ModelSelect2(url='SEO:property-autocomplete')
)
class Meta:
model = ModelSEOMetadatum
fields = ('name','content','property','content_type','object_id')
解决方法
您应该覆盖小部件并为其提供管理站点作为参数。
管理类:
class MyAdmin(admin.ModelAdmin):
form = MyForm
表单定义:
class MyForm(forms.ModelForm):
class Meta:
widgets = {
'some_lookup_field': AutocompleteSelect(
MyModel._meta.get_field('some_lookup_field').remote_field,admin.site,attrs={'style': 'width: 20em'},),}
请注意,您的查找字段的管理定义中至少需要有一个 search_filter。
在此处查看可根据需要进行扩展的改进版本link