在 Django 管理员中,我如何隐藏或删除 Pencil、“+”和“x”?
Posted
技术标签:
【中文标题】在 Django 管理员中,我如何隐藏或删除 Pencil、“+”和“x”?【英文标题】:In Django admin how can i hide or remove the Pencil, "+" and "x"? 【发布时间】:2018-07-23 06:11:41 【问题描述】:我可以隐藏模型库中的所有选项,但不是必需的,在我无法做到的关系上,我认为存在一个简单的表单(不使用 css)来删除或隐藏它
谢谢
【问题讨论】:
【参考方案1】:我同意Ivan Camilito Ramirez Verdes的解决方案:
class MyModelAdmin(admin.ModelAdmin):
list_display = (
'my_field',
)
def get_form(self, request, obj=None, **kwargs):
form = super().get_form(request, obj, **kwargs)
form.base_fields['my_field'].widget.can_change_related = False
form.base_fields['my_field'].widget.can_add_related = False
return form
【讨论】:
【参考方案2】:我假设您希望从管理员中禁用 ADD
、EDIT
和 DELETE
功能。
Django Documentation 提供以下功能,您可以在 ModelAdmin
中覆盖这些功能:
class SomeModelAdmin(admin.ModelAdmin):
def has_add_permission(self, request):
return False
def has_change_permission(self, request):
return False
def has_delete_permission(self, request):
return False
【讨论】:
谢谢,终于用上了:form = super().get_form(request, obj, **kwargs) form.base_fields['form_field_name'].widget.can_add_related = False form.base_fields[' form_field_name'].widget.can_delete_related = 错误返回表单以上是关于在 Django 管理员中,我如何隐藏或删除 Pencil、“+”和“x”?的主要内容,如果未能解决你的问题,请参考以下文章
在 django 中单击管理员的选择字段后如何隐藏或显示模型字段