有没有什么好方法可以为安装的应用管理员添加自定义操作?我不想要管理员表格的子类。此外,我不想修改原始应用程序代码。也许为课堂做贡献会有用吗?这种情况好吗?
答案 0 :(得分:1)
添加自定义管理操作很容易,只需像查询集一样处理更新:
class CustomerAdmin(admin.ModelAdmin):
list_display = ['name', 'age', 'status']
actions = ['change_name_action']
def change_name_action(self, request, queryset):
queryset.update(status='gold')
change_published.short_description = 'Change status for selected customers'
如果你想对admin中的任何模型使用action,你可以将action作为函数编写,并在网站范围内添加,如下所示:
from django.contrib import admin
admin.site.add_action(change_name_action)
更高级用法read the docst
答案 1 :(得分:0)
解决了,但不确定这是否正确。
def send_newsletter(modeladmin, request, queryset):
#do stuff
from djangocms_blog.admin import PostAdmin
setattr(PostAdmin, 'actions', [send_newsletter])