2009-07-30 21 views
7

Ho un modello "Persona" che ha relazioni uno-a-molti con altri modelli, ad esempio Indirizzo. Voglio modificare questi modelli sulla stessa pagina di Person, cosa che posso già fare tramite inline. Ma voglio anche cambiare l'ordine dei campi.Django Admin -> Modifica ordine di campi, inclusi campi in linea

Voglio che il (in linea) campo "Indirizzo" di essere il terzo elemento della lista, ma per

campi ('first_name', 'cognome', 'Adress_Inline', 'nazionalità', ecc ..) Ho ottenuto questo: PersonAdmin.fields 'si riferisce al campo' Address_Inline 'che manca dal modulo.

C'è un modo per modificare l'ordine dei campi e ottenere determinati campi in linea tra i campi del modello 'normale'?

Grazie!

risposta

0

È necessario estendere manualmente il modello di amministrazione (change_form.html) e le posizioni del codice di protezione. AFAIK, non puoi inserire moduli in linea nel mezzo di un modulo padre.

0

È possibile farlo con javascript. Devi sovrascrivere il modello e magari aggiungere qualche tag div. Quindi inserisci l'hardcode dei tuoi div che vuoi copiare e poi nascondi il div originale (con il inline). Spero che questo aiuti.

0

Ogniqualvolta Django rende il modello di modulo di amministrazione, l'elenco dei campi in linea è disponibile in una variabile {{inline_admin_formset}}, è possibile utilizzarlo per mostrare campi in linea in qualsiasi punto del proprio modello personalizzato change_form.html.

È necessario estendere il modello change_form.html per farlo, non c'è altro modo.

Problemi correlati