0

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

我在自己的模型中使用了非常相似的代码,但我的ManyToManyField选择器只是显示为普通<select multiple="multiple" ...>字段。admin.py我在 Photologue 的or中看不到任何特别之处models.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',)

有人知道我错过了什么吗?如果有帮助,我会发布屏幕截图。

谢谢,

多姆

4

1 回答 1

2

请参阅 django 文档了解filter_horizo​​ntal

一个漂亮的不显眼的 JavaScript“过滤器”界面,而不是管理表单中的可用性挑战 <select multiple>。

于 2009-04-30T13:27:49.743 回答