当前位置:  开发笔记 > 编程语言 > 正文

删除Django admin中的默认删除操作

如何解决《删除Djangoadmin中的默认删除操作》经验,为你挑选了4个好方法。

如何删除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文档执行此操作的推荐方法:

有条件地启用或禁用操作



1> Dawn T Cheri..:

这有效:

def get_actions(self, request):
    actions = super().get_actions(request)
    if 'delete_selected' in actions:
        del actions['delete_selected']
    return actions

这也是基于以下Django文档执行此操作的推荐方法:

有条件地启用或禁用操作



2> falsetru..:

在您的管理类中,定义has_delete_permission返回False:

class YourModelAdmin(admin.ModelAdmin):
    ...

    def has_delete_permission(self, request, obj=None):
        return False

然后,它不会显示删除按钮,也不允许您删除管理界面中的对象.


这将删除删除按钮,但它不会从下拉列表中删除删除选项,该选项用于选择多个条目并执行删除操作.

3> Max Malysh..:

您可以在网站范围内停用"删除所选"操作:

from django.contrib.admin import site
site.disable_action('delete_selected')

当您需要包含此操作时,请添加'delete_selected'到操作列表:

actions = ['delete_selected']

文档



4> Rajan Mandan..:

如果要删除所有操作:

class UserAdmin(admin.ModelAdmin):
    model = User
    actions = None

如果您想要一些特定的动作:

class UserAdmin(admin.ModelAdmin):
    model = User
    actions = ['name_of_action_you_want_to_keep']


actions = ['name_of_action_you_want_to_keep']对Django 2.0不起作用
推荐阅读
有风吹过best
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有