2015-09-14 13 views
5

Per esempio, ho un modello Post:creare più oggetti in Django di amministrazione in una volta

Class Post(models.Model): 
    title = models.Charfield(max_length=200) 
    # other fields 

mi chiedo c'è un modo per creare più posti contemporaneamente in admin. In altre parole, ho bisogno di un formset invece di un singolo modulo nella pagina di post-creazione.

risposta

2

Probabilmente, il modo migliore per fare esattamente quello che vuoi è estendere lo ModelAdmin class, perché non ha formet su di esso, ad eccezione di quelli usati su InlineFormsets.

Dopo di che si può personalizzare l'amministratore change_form template, di includere i vostri formsets

Il modo più rapido e-sporco per farlo utilizzando admin è avvolgere il vostro modello Post come un formset in linea di un altro ModelAdmin e aggiungere l'opzione extra ad esso.

+0

1) Voglio contrassegnare esplicitamente quei modelli, che hanno bisogno di un formset. Immagino che la tua soluzione sia non selettiva e renderà tutti i modelli uguali. 2) Inline non è quello che sto cercando. – chem1st

+0

Ok, è ancora necessario creare una nuova classe ModelAdmin con una proprietà formset e un flag formset, contrassegnando se si desidera che il modulo di amministrazione specifico utilizzi i formulari e il numero di extra_forms. @ chem1st –

5

Recentemente ho sentito parlare di un'app django che fa esattamente questo lavoro. Si chiama django-bulk-admin e consente l'aggiunta/aggiornamento di massa nell'amministratore.

+0

Strumento eccellente, @Eliot. Funziona! –

+0

Stanno facendo esattamente quello che ho detto, hanno creato BulkModelAdmin che estende la classe ModelAdmin e aggiunge moduli. Quindi hanno creato modelli per change_form. –

+1

@FernandoFreitasAlves: hai ragione! Non ho investigato, infatti ho appena trovato il pacchetto su Reddit e ho pensato che l'OP sarebbe stata interessata da una risposta di terze parti invece di scriverla da zero. –

Problemi correlati