【问题标题】:How can I hide (not disable) in Django admin the action add model button in ModelAdmin list view?如何在 Django admin 中隐藏(不禁用)ModelAdmin 列表视图中的操作添加模型按钮?
【发布时间】:2021-12-12 15:50:50
【问题描述】:

我知道以下非常不同的问题:

我的问题有点不同:如何在模型列表视图中禁用操作按钮,但保留所有其他 Django 部分的添加功能和链接(例如 OneToOne 关系和内联)。代码:

@admin.register(Document)
class DocumentAdmin(admin.ModelAdmin):
    list_display = ("id", "name", "template", "file")
    fields = ["template", "name", "file"]

    def has_add_permission(self, request):
        return False

完全禁用 ModelAdmin 的添加功能(Django 3.2+,未在早期版本中测试)。

【问题讨论】:

    标签: python django django-admin admin


    【解决方案1】:

    一种可能性是:

    @admin.register(Document)
    class DocumentAdmin(admin.ModelAdmin):
        list_display = ("id", "name", "template", "file")
        fields = ["template", "name", "file"]
    
        def has_add_permission(self, request):
            return ("add" in request.path or "change" in request.path)
    

    这将允许在弹出窗口中维护“/admin///add/”功能。 模型列表视图将允许模型编辑,但没有“添加”按钮。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-05-07
      • 2019-02-02
      • 1970-01-01
      • 2019-05-30
      • 2013-03-21
      • 2016-03-31
      • 1970-01-01
      相关资源
      最近更新 更多