相关疑难解决方法(0)

如何在 Django 管理列表显示页面中编辑 ManyToManyField?

我想在 Django 管理 list_display 页面中添加可编辑的 Many2Many 字段。模型结构如下,

class Genre(models.Model):
    name = models.CharField(max_length=250, unique=True)


class Movie(models.Model):
    name = models.CharField(max_length=250)
    genre = models.ManyToManyField(Genre)
Run Code Online (Sandbox Code Playgroud)

我尝试过,

class MovieAdmin(admin.ModelAdmin):
    list_display = ['name', 'genre']
    list_editable = ['genre']
Run Code Online (Sandbox Code Playgroud)

上面抛出一个错误。

python django django-forms django-admin django-modeladmin

5
推荐指数
1
解决办法
7569
查看次数

django管理员更改列表中的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)

谢谢!

django autocomplete django-admin manytomanyfield

2
推荐指数
1
解决办法
2324
查看次数