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 字段交互来启用或禁用 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 字段时如何调用函数。
解决方案
您可以使用list_editable
list_editable = ['is_enabled']
记得在 list_display (ModelAdmin)中添加is_enabled
推荐阅读
- c# - 在视图 asp 中提供标识符后,如何使用主数据部分填充事务视图?
- swift - Swift组合自定义发布者:存储对订阅者数组的引用?
- django - 如何在 24 小时后自行生成令牌?
- xcode - 无法删除我的 xcode 项目的副本,因为“它正在使用中”
- c# - 使用 iOS Safari 模拟器在 Visual Studio 中进行调试
- c# - 自定义 Windows 身份验证 Blazor 返回 AppPool
- powershell - RunSpace 及其关闭
- python - 根据多个标准映射熊猫数据框
- angular - 开发模式下的 Angular 路由无法正确重写 URL
- css - 如何水平居中垂直旋转文本?