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

Était-ce utile?

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.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top