2011-12-05 13 views
9

Sono nuovo in django, sto sviluppando il pannello di amministrazione prima per il mio sito. Ho bisogno di avere campi di selezione dipendenti, in modo che dopo aver selezionato il paese, l'utente sarà in grado di selezionare città. Lo voglio quando seleziono il paese, quindi le città di quel paese caricano le opzioni nella casella di selezione della città, ma non so come personalizzare l'amministratore di django. L'ho fatto in JS, usando AJAX e PHP. Quindi so come farlo manualmente ma non so come usare ajax in django e come personalizzarlo.personalizzazione admin di django per avere campi select dipendenti

Su alcune altre domande ho letto che si dovrebbe leggere la documentazione di django, quindi ho provato a leggere e trovare la documentazione di amministrazione ma non ho trovato il modo di personalizzare il pannello di amministrazione di django. Devo personalizzare la pagina intera per quelle caselle di selezione? Oppure ti prego di dire che posso aggiungere un codice jQuery per poterlo fare tramite JS?

risposta

10

Probabilmente si desidera utilizzare la funzione Raggruppa selezioni in django smart selects. Dal README:

Se avete il seguente modello:

class Location(models.Model) 
    continent = models.ForeignKey(Continent) 
    country = models.ForeignKey(Country) 

E si desidera che tutti i paesi sono raggruppati per il continente e che i gruppi sono utilizzati nel selezionare Cambia al seguente:

from smart_selects.db_fields import GroupedForeignKey 

class Location(models.Model) 
    continent = models.ForeignKey(Continent) 
    country = GroupedForeignKey(Country, "continent") 
+0

grazie sì, questo è quello che stavo cercando – Hafiz

0

Esiste davvero una buona documentazione su come personalizzare l'admin di django. Ad esempio, Here, puoi vedere come ridefinire i modelli di amministrazione.

Nel caso in cui si presenti, tuttavia, l'approccio più semplice, come suggerito, è aggiungere un codice JavaScript che aggiunga il comportamento extra dei campi. È possibile puntare il file js con quel codice nell'admin del modello, come spiegato here.

+0

grazie per la tua risposta Facundo Olano e lo sforzo di aiuto – Hafiz

Problemi correlati