ManyToManyFields в администраторе Django
-
03-07-2019 - |
Вопрос
Я использую Photologue в своем приложении, и мне очень нравится ManyToManyField
селектор, который появляется в приложении администратора (два поля множественного выбора со стрелками для перемещения элементов между выбранным и невыбранным состояниями, а также параметры «Выбрать все» и «Очистить все»).
Я использую очень похожий код в своей модели, но мой ManyToManyField
селектор просто отображается как обычно <select multiple="multiple" ...>
поле.Я не вижу ничего особенного в Фотологе. admin.py
или 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)
Админ из Фотолога:
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',)
Кто-нибудь знает, чего мне не хватает?Если это поможет, выложу скриншоты.
Спасибо,
Дом
Решение
См. документацию по django для filter_horizontal
изящный ненавязчивый интерфейс «фильтра» JavaScript вместо неудобного для использования <select Multiple> в форме администратора.