如何在 Django 管理中隐藏(不禁用)ModelAdmin 列表视图中的操作添加模型按钮?
How can I hide (not disable) in Django admin the action add model button in ModelAdmin list view?
我知道以下问题非常不同:
- Django Admin - Disable the 'Add' action for a specific model
- Disable link to edit object in django's admin (display list only)?
我的问题有点不同:如何禁用模型列表视图中的操作按钮,但保留所有其他 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///add/”功能,也在弹出窗口中。
模型列表视图将允许模型编辑,但没有“添加”按钮。
我知道以下问题非常不同:
- Django Admin - Disable the 'Add' action for a specific model
- Disable link to edit object in django's admin (display list only)?
我的问题有点不同:如何禁用模型列表视图中的操作按钮,但保留所有其他 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/