如何删除Django管理员中的默认删除操作?以下工作会怎样?
actions = [ ]
Dawn T Cheri.. 47
这有效:
def get_actions(self, request): actions = super().get_actions(request) if 'delete_selected' in actions: del actions['delete_selected'] return actions
这也是基于以下Django文档执行此操作的推荐方法:
有条件地启用或禁用操作
这有效:
def get_actions(self, request): actions = super().get_actions(request) if 'delete_selected' in actions: del actions['delete_selected'] return actions
这也是基于以下Django文档执行此操作的推荐方法:
有条件地启用或禁用操作
在您的管理类中,定义has_delete_permission
返回False
:
class YourModelAdmin(admin.ModelAdmin): ... def has_delete_permission(self, request, obj=None): return False
然后,它不会显示删除按钮,也不允许您删除管理界面中的对象.
您可以在网站范围内停用"删除所选"操作:
from django.contrib.admin import site site.disable_action('delete_selected')
当您需要包含此操作时,请添加'delete_selected'
到操作列表:
actions = ['delete_selected']
文档
如果要删除所有操作:
class UserAdmin(admin.ModelAdmin): model = User actions = None
如果您想要一些特定的动作:
class UserAdmin(admin.ModelAdmin): model = User actions = ['name_of_action_you_want_to_keep']