一尘不染

Django Admin-对特定模型禁用“添加”操作

django

我有一个包含许多模型和表格的django网站。我有许多自定义表单和表单集以及inlineformsets和自定义验证以及自定义查询集。因此,添加模型操作取决于需要其他内容的表单,并且Django管理员中的“添加模型”通过自定义查询集中的500。

无论如何,对于某些型号,是否禁用“添加$ MODEL”功能?

我想/admin/appname/modelname/add/给出一个404(或合适的“ goaway”错误消息),我不希望显示“ Add $ MODELNAME”按钮/admin/appname/modelname

Django管理员提供了一种禁用管理员操作的方法(http://docs.djangoproject.com/en/dev/ref/contrib/admin/actions/#disabling-actions),但是此模型的唯一操作是“ delete_selected”。即,管理员操作仅作用于现有模型。有一些Django风格的方法来做到这一点吗?


阅读 391

收藏
2020-04-01

共1个答案

一尘不染

这很简单,只需has_add_permission在你的Admin类中重载方法,如下所示:

class MyAdmin(admin.ModelAdmin):
     def has_add_permission(self, request, obj=None):
        return False
2020-04-01