Сделать логические значения, редактируемые в list_display?

Я хотел бы, чтобы логическое поле редактировалось в моем списке списков admin в Django. Вместо этого у меня есть неотредактированные значки:

enter image description here

Мой код выглядит так:

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

Я не включил is_finished в кортеж readonly_fields в admin.py, поэтому я удивлен, что он по умолчанию не редактируется. Что я делаю не так?

Ответ 1

ModelAdmin.list_editable - это то, что вам нужно, см. Его документ здесь. Ниже приведен пример:

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"