ManyToManyFields dans Django Admin
-
03-07-2019 - |
Question
J'utilise Photologue dans mon application et j'aime beaucoup le sélecteur ManyToManyField
qui apparaît dans l'application d'administration (deux cases à sélection multiple avec des flèches pour déplacer des éléments entre les états sélectionné et non sélectionné, ainsi que < !> "Choisir tout &" et & "Effacer tout &"; options).
J'utilise un code très similaire dans mon propre modèle, mais mon sélecteur <select multiple="multiple" ...>
apparaît simplement sous la forme d'un champ admin.py
normal. Je ne vois rien de spécial dans models.py
ou <=> de Photologue, et les deux applications fonctionnent dans le même projet.
Mon modèle:
class Portfolio(models.Model):
images = models.ManyToManyField(Photo, related_name='portfolios')
...
Modèle pertinent de Photologue:
class Gallery(models.Model):
....
photos = models.ManyToManyField('Photo',
related_name='galleries',
verbose_name=_('photos'),
null=True, blank=True)
Administrateur de 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',)
Quelqu'un sait ce que je manque? Je posterai des captures d'écran si cela peut vous aider.
Merci,
Dom
La solution
Voir la documentation django pour filter_horizontal
un JavaScript discret et astucieux & "filtre &"; interface au lieu de < contesté par la convivialité; sélectionnez plusieurs > sous la forme admin.