在 django 管理员的更改列表中,我想使用 list_editable 来显示 ManyToManyField 的 django-autocomplete 小部件。
我在这里找到了类似的东西:list_editable and widgets
通常在 list_display 中包含 ManyToManyField 会引发 ImproperlyConfigured 异常,例如:
""'BookAdmin.list_display[2]', 'author' 是不受支持的 ManyToManyField。"
我(也许不明智地)从 contrib/admin/validate.py 中删除了 3 行以绕过异常。:)
我现在让它吐出以下内容,很接近(?)但没有雪茄。
<django.db.models.fields.related.ManyRelatedManager 对象在 0x1032a85d0>
关于如何进行的任何想法?有没有更好的方法来做到这一点?
这是我目前所拥有的:(AuthorAutocomplete 在常规管理表单中运行良好)
class AuthorAutocomplete(AutocompleteSettings):
search_fields = ('first_name', 'last_name')
class BookAdmin(AutocompleteAdmin, admin.ModelAdmin):
def get_changelist_form(self, request, **kwargs):
kwargs.setdefault('form', AuthorAutocompleteForm)
return super(BookAdmin, self).get_changelist_form(request, **kwargs)
list_display = ['isbn', 'title', 'author', 'publisher']
#...
class AuthorAutocompleteForm(forms.ModelForm):
class Meta:
model = Book
author = AuthorAutocomplete
谢谢!