2013-08-07 3 views
16

Chciałbym, aby pole binarne było edytowalne na moim ekranie listy administratorów Django. Zamiast tego, mam go edytować ikony:Czy wartości boolowskie można edytować w trybie wyświetlania_sekcji?

enter image description here

Mój kod wygląda następująco:

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

Nie wliczone is_finished w readonly_fields krotki w admin.py, więc jestem zaskoczony, że ISN Domyślnie jest edytowalna. Co ja robię źle?

+0

Czy wstawiłeś 'is_finished' w' list_editable'? –

Odpowiedz

24

ModelAdmin.list_editable jest tym, czego potrzebujesz, zobacz jego dokument here. Poniżej masz również przykład:

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

gdzie powinienem przypiąć akcję, która powinna zostać wykonana po zmianie stanu? save_model w admin django? – andi