在 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】:

我假设您希望从管理员中禁用 ADDEDITDELETE 功能。

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 中单击管理员的选择字段后如何隐藏或显示模型字段

如何从 django 管理站点中删除更改密码链接?

Django admin - 如何在用户编辑中隐藏一些字段?

如何在django-admin中隐藏特定记录的字段?

如何恢复老毛桃PE的UEFI BIOS隐藏分区?

自定义 django 管理视图