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禁用编辑链接和添加删除操作的主要内容,如果未能解决你的问题,请参考以下文章