Domanda

Sto usando Photologue nella mia applicazione e mi piace molto il selettore ManyToManyField che appare nell'app di amministrazione (due caselle a selezione multipla con frecce per spostare elementi tra gli stati selezionati e non selezionati, insieme a < !> quot; Scegli tutto " e " Cancella tutto " opzioni).

Sto usando un codice molto simile nel mio modello, ma il mio selettore <select multiple="multiple" ...> si presenta come un normale campo admin.py. Non riesco a vedere nulla di speciale in models.py o <=> di Photologue e le due app sono in esecuzione nello stesso progetto.

Il mio modello:

class Portfolio(models.Model):
    images      = models.ManyToManyField(Photo, related_name='portfolios')
    ...

Modello rilevante di Photologue:

class Gallery(models.Model):
    ....
    photos = models.ManyToManyField('Photo',
                                    related_name='galleries',
                                    verbose_name=_('photos'),
                                    null=True, blank=True)

Amministratore da 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',)

Qualcuno sa cosa mi sto perdendo? Pubblicherò screenshot se sarebbe di aiuto.

Grazie,

Dom

È stato utile?

Soluzione

Consulta i documenti di django per filter_horizontal

  

un discreto JavaScript discreto " filtro " interfaccia anziché < con difficoltà di utilizzo; selezionare più > nel modulo di amministrazione.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top