我有一个Django 网站,有很多模型和表格.我有许多自定义表单和表单集、内联表单集以及自定义验证和自定义查询集.因此,add model操作依赖于需要其他内容的表单,而Django admin中的"add model"从自定义查询集到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 式的方法可以做到这一点?

推荐答案

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

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

Django相关问答推荐

查尔而不是瓦尔查尔加盟Django 球场

Django 5.0.2:TypeError:获取切片后无法过滤查询

自定义身份验证 django

在 Django Rest Framework 视图中,request.user 是在请求​​到达视图之前进行数据库调用还是数据库调用发生?

Django授权判断具有通配符模式的URL

Django REST Framework 图片上传

Django模型中的密码字段

使用 Django 一次更新多条记录

Django Calendar日历小部件?

获取 Django 中的缓存键列表

Django error:不能分配必须是实例

使用 Python / Django 的 Google API 示例的 Oauth

django 有条件地过滤对象

在 Django 中使用 AuthenticationForm

如何在 Django 中配置 X-Frame-Options 以允许 iframe 嵌入一个视图?

Django:从视图中添加 non_field_error?

如何查询名称包含python列表中任何单词的模型?

在 Django 开发服务器中关闭静态文件的缓存

Django admin:使字段在添加中可编辑但不可编辑

Django 字符串到日期格式