Django Admin中的ManyToManyFields

时间:2009-04-30 13:08:46

标签: django django-admin

我在我的应用程序中使用Photologue,我非常喜欢管理应用程序中显示的ManyToManyField选择器(带有箭头的两个多选框,用于在所选状态和非选定状态之间移动项目,使用“全选”和“全部清除”选项。)

我在自己的模型中使用了非常相似的代码,但我的ManyToManyField选择器只显示为普通<select multiple="multiple" ...>字段。我在Photologue的admin.pymodels.py中看不到任何特别的内容,这两个应用程序在同一个项目中运行。

我的模特:

class Portfolio(models.Model):
    images      = models.ManyToManyField(Photo, related_name='portfolios')
    ...

Photologue的相关模型:

class Gallery(models.Model):
    ....
    photos = models.ManyToManyField('Photo',
                                    related_name='galleries',
                                    verbose_name=_('photos'),
                                    null=True, blank=True)

来自Photologue的管理员:

class GalleryAdmin(admin.ModelAdmin):
    list_display = ('title', 'date_added', 'photo_count', 'is_public')
    list_filter = ['date_added', 'is_public']
    date_hierarchy = 'date_added'
    prepopulated_fields = {'title_slug': ('title',)}
    filter_horizontal = ('photos',)

任何人都知道我错过了什么?如果有帮助,我会发布截图。

谢谢,

的Dom

1 个答案:

答案 0 :(得分:2)

请参阅filter_horizontal

的django文档
  

一个漂亮的不引人注目的JavaScript“过滤器”界面,而不是可用性挑战&lt; select multiple&gt;在管理员表格中。