Django Admin 覆盖 autocomplete_field 中的 __str__ 方法

Django Admin overwrite the __str__ method in an autocomplete_field

我想在使用 autocomplete_fields = () 时覆盖 Django 管理中的 __str__ 方法,但返回值使用 __str__.

我有一个类似于

的表格
class MyAdminForm(forms.ModelForm):
        
    placement = forms.Select(
        choices = Organisation.objects.active(),
    )

    class Meta:
        model = Lead
        fields = '__all__'

    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        self.fields['placement'].label_from_instance = lambda obj: f'{str(obj)} {obj.post_code}'

这将在下拉字段中返回一个 Select 组织名称和 post 代码。但是有一些 80k 的选择,所以我需要使用自动完成。在 admin.py 我有

class LeadAdmin(admin.ModelAdmin):
    form = LeadAdminForm
    autocomplete_fields = ('placement',)

我一添加 autocomplete_fields 我就丢失了我的 post 代码,它恢复为只显示 __str__

我可以使用 autocomplete_fields 并覆盖 __str__ 方法吗?

这个问题已通过 Benbb96 评论回答,我已将上面的评论复制到此处,以便我可以将其关闭

So maybe this answer can help you : whosebug.com/a/56865950/8439435 – Benbb96