kwn*_*wnd 2 django autocomplete django-admin manytomanyfield
在django admin的更改列表中,我想使用list_editable为ManyToManyField显示django-autocomplete小部件.
我在这里发现了类似的东西:list_editable和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
Run Code Online (Sandbox Code Playgroud)
谢谢!
这是一个古老的话题,但我希望这可能对其他人有所帮助.
要获取ManyToMany字段的值以便显示其值,您可以执行以下操作.我使用list_display作为示例.
class TestAdmin(admin.ModelAdmin):
def get_some_value(self):
return ", " . join([x.__str__() for x in self.manytomany_field.all()])
list_display(get_some_value)
get_some_value.short_description = 'Title' #sets column header to Title
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2324 次 |
| 最近记录: |