首页 > 解决方案 > 如何在 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 字段交互来启用或禁用 Post。

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 字段时如何调用函数。

标签: djangodjango-admin

解决方案


您可以使用list_editable

list_editable = ['is_enabled']

记得在 list_display (ModelAdmin)中添加is_enabled


推荐阅读