我如何隐藏(而不是禁用)在Django admin的动作添加模型按钮在ModelAdmin列表视图?



我注意到以下问题非常不同:

  • Django Admin - Disable 'Add'
  • 禁用django's admin中编辑对象的链接(仅显示列表)?

我的问题有点不同:我如何禁用模型列表视图中的操作按钮,但保留所有其他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+,未在早期版本中测试)。

可能是:

@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/" app>/" model>/add/"功能,也在弹出。模型列表视图将允许对模型进行编辑,但它将不具有"添加";按钮。

最新更新