微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在 django 管理员更新操作中使用带有自动完成字段的表单

如何解决如何在 django 管理员更新操作中使用带有自动完成字段的表单

我在管理面板中使用自定义表单,其中包含两个自动完成字段。

我的问题是,我不知道如何在更新操作中使用表单,以便存储的数据与自动完成功能一起显示

在我的更新操作实现中,出现的值没有自动完成功能

我该如何解决

我的表格

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。