2009-04-30 10 views
0

J'utilise Photologue dans mon application, et j'aime vraiment le sélecteur ManyToManyField qui apparaît dans l'application d'administration (deux boîtes multi-sélection avec des flèches pour déplacer des éléments entre les états sélectionnés et non sélectionnés, le long avec les options "Choisir tout" et "Effacer tout"). J'utilise un code très similaire dans mon propre modèle, mais mon sélecteur ManyToManyField apparaît simplement comme un champ normal <select multiple="multiple" ...>. Je ne vois rien de spécial dans les admin.py ou models.py de Photologue, et les deux applications fonctionnent dans le même projet.ManyToManyFields dans Django Admin

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 suis absent? Je publierai des captures d'écran si cela peut vous aider.

Merci,

Dom

Répondre

2

Voir docs django pour filter_horizontal

un astucieux JavaScript discret "filtre" l'interface au lieu du défi utilisabilité-< sélectionner plusieurs > sous la forme d'administration.

+0

Silly moi - c'est juste là dans la question - il n'a pas semblé qu'il pourrait être le bit pertinent de la déclaration d'admin. Merci! –

Questions connexes