Django admin禁用编辑链接和添加删除操作

Posted Jason_WangYing

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Django admin禁用编辑链接和添加删除操作相关的知识,希望对你有一定的参考价值。

话不多,直接代码

    List_display_links = None  # 禁用编辑链接
    def has_add_permission(self, request):
        # 禁用添加按钮
        return False
    def has_delete_permission(self, request, obj=None):
        # 禁用删除按钮
        return False
    def get_actions(self, request):
        # 在actions中去掉‘删除’操作
        actions = super().get_actions(request)
        if request.user.username[0].upper() != 'J':
            if 'delete_selected' in actions:
                del actions['delete_selected']
        return actions

当然如果你嫌他太麻烦,每次都需要写,可以扩展下,直接生成基类,这样再创建admin时集成基类就好了。


class BaseModelAdmin(admin.ModelAdmin):
    List_display_links = None  # 禁用编辑链接

    def has_add_permission(self, request):
        # 禁用添加按钮
        return False

    def has_delete_permission(self, request, obj=None):
        # 禁用删除按钮
        return False

    def get_actions(self, request):
        # 在actions中去掉‘删除’操作
        actions = super().get_actions(request)
        if request.user.username[0].upper() != 'J':
            if 'delete_selected' in actions:
                del actions['delete_selected']
        return actions


@admin.register(weixin_models.WechatReplyMessage)
class WechatReplyMessageAdmin(BaseModelAdmin):

以上是关于Django admin禁用编辑链接和添加删除操作的主要内容,如果未能解决你的问题,请参考以下文章

在 Django Admin 中,我如何禁用删除链接

Django Admin Cookbook-20如何删除模型的“添加”/“删除”按钮

如何禁用编辑和删除rails_admin?

Django admin禁用外键下拉但保留添加按钮旁边

Django-admin:如何在记录更改列表中显示指向对象信息页面的链接而不是编辑表单?

通过 Django admin 删除对象时是不是可以禁用相关对象的生成?