You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何实现Django Admin列表页的只读展示效果?

Django Admin 实现列表页只读展示效果

要实现类似list_display的只读列表展示,同时禁止编辑操作但保留列表可见性,可以通过以下调整优化你的ModelAdmin类:

  • 保留列表可见性,精准禁用编辑权限
    重写has_change_permission方法,区分列表页和编辑页:列表页允许访问,编辑页直接禁用,避免直接返回False导致列表消失:

    def has_change_permission(self, request, obj=None):
        # 仅开放列表页访问,禁止进入编辑页
        if obj is None:
            return True
        return False
    
  • 移除列表页的编辑入口
    通过list_display_links设置为None,彻底移除列表中默认的编辑按钮,让用户无法触发编辑操作:

    list_display_links = None
    
  • 按需禁用添加/删除权限
    如果不需要添加或删除功能,直接重写对应权限方法:

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

最终完整的ModelAdmin代码:

class TheList(admin.ModelAdmin):
    list_display = ['name', 'age']
    actions = None
    list_display_links = None

    def has_change_permission(self, request, obj=None):
        return obj is None

    def has_add_permission(self, request):
        return False

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

设置完成后,后台会正常展示包含name和age的只读列表,无编辑按钮、无法进入编辑页,同时禁止添加和删除对象,完全符合只读列表的需求。

内容的提问来源于stack exchange,提问作者ETHERC20

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 16:30:45