如何在Django Admin中添加自定义布尔操作按钮?

时间:2019-01-24 09:28:07

标签: django django-admin

我有一个已向管理员注册的模型。

models.py
class Post(models.Model):
    title = models.CharField(max_length=100)
    tag = models.CharField(max_length=3)
    is_enabled = models.BooleanField(default=False)

现在,我希望管理员只能通过与模型的is_enabled字段进行交互来启用或禁用发布。

admin.py
class PostAdmin(admin.ModelAdmin):
    list_display = ['id', 'title', 'tag', 'is_enabled']
    list_display_links = None
    readonly_fields = ['id', 'title', 'tag']

    actions = ['enable_selected', 'disable_selected']

    def enable_selected(self,requst,queryset):
        queryset.update(is_enabled=True)

    def disable_selected(self,requst,queryset):
        queryset.update(is_enabled=False)

    enable_selected.short_description = "Enable the selected Post"
    disable_selected.short_description = "Disable the selected Post"

我已经在下拉列表中成功添加了这些操作,但是我需要以列表中按钮的形式添加此操作,还需要知道当单击按钮以更新is_enabled字段时如何调用函数

1 个答案:

答案 0 :(得分:2)

您可以使用 list_editable

list_editable = ['is_enabled']

还记得在list_display(ModelAdmin)中添加已启用