2015-04-15 21 views
10

Ho un numero base ai molti rapporto di:C'è un widget Django di amministrazione per l'aggiunta di più chiavi esterne con una through_model linea

canzone alla playlist con PlaylistMember come il tramite modello

Ora sono la visualizzazione del canzoni in vista della playlist dettaglio utilizzando un inline View che è una sottoclasse di TabularInline:

class PlaylistMemberInline(TabularInline): 
    model = PlaylistMember 
    raw_id_fields = ('Sound',) 


class PlaylistAdmin(TranslatableAdmin): 
    ... 
    inlines = [PlaylistMemberInline] 

What I see in the admin

Per aggiungere più suoni, devo cliccare su "Aggiungi un altro suono", e poi trovare quel suono in un popup. Questo è fastidioso nel mio caso, in quanto riesco a trovare tutti i suoni che voglio aggiungere, ma poi devo fare clic su uno e tornare a "Aggiungi un altro suono".

C'è un widget dove posso cercare, selezionare e quindi aggiungere più oggetti?

+2

Non esiste un widget standard in Django che lo faccia come parte dell'amministratore di Django. Forse alcuni componenti aggiuntivi di terze parti potrebbero. –

+0

django-grappelli fornisce una funzionalità di completamento automatico da utilizzare manualmente in caso di inline. – Anass

risposta

2

Il codice sorgente di Django (1.8 branch here, line 254) suggerisce che è possibile aggiungere la propria ForeignKey a radio_fields o raw_id_fields, risultando in un diverso widget.

In questo caso, aggiungere il nome del campo "Sound" per PlaylistMemberInline.raw_id_fields, considerare l'aggiunta al PlaylistMemberInline.radio_fields.

Problemi correlati