小编典典

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

all

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

是否有禁用某些型号的“添加 $MODEL”功能?

我想/admin/appname/modelname/add/给出一个 404(或合适的“离开”错误消息),我不希望“添加
$MODELNAME”按钮出现在/admin/appname/modelname视图中。

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


阅读 65

收藏
2022-08-01

共1个答案

小编典典

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

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