2013-08-07 16 views
16

Mi piacerebbe che un campo booleano fosse modificabile nella visualizzazione dell'elenco degli amministratori di Django. Invece, ho le icone non modificabili:Rendi i valori booleani modificabili in list_display?

enter image description here

Il mio codice è simile al seguente:

# Model 
class Task(models.Model): 
    ... 
    is_finished = models.BooleanField() 
# Admin 
list_display = (..., 'is_finished') 

Non ho incluso is_finished nel readonly_fields tupla in admin.py, quindi sono sorpreso che esso isn 'modificabile di default. Che cosa sto facendo di sbagliato?

+0

Hai messo 'is_finished' in' list_editable'? –

risposta

24

ModelAdmin.list_editable è quello che ti serve, vedere il suo documento here. Qui sotto c'è anche un esempio:

class TaskAdmin(models.ModelAdmin): 
    list_display = (..., 'is_finished') 
    list_editable = ('is_finished',) # this MUST only contain fields that also are in "list_display" 
    #list_display_links = ('foo', 'bar') # this MUST NOT contain a field in common with "list_editable" 
+0

dove dovrei pin l'azione che dovrebbe essere eseguita quando lo stato è cambiato? save_model in django admin? – andi