删除默认删除操作 Django admin

如何删除默认删除操作 Django admin?
下一个工作会工作吗?


actions = [ ]
已邀请:

石油百科

赞同来自:

有用:


def get_actions/self, request/:
actions = super//.get_actions/request/
if 'delete_selected' in actions:
del actions['delete_selected']
return actions


它也是根据文档执行此操作的推荐方式。 Django 以下:

https://docs.djangoproject.com ... tions

莫问

赞同来自:

在您的课堂管理员身上
has_delete_permission

https://docs.djangoproject.com ... ssion
返回
False

:


class YourModelAdmin/admin.ModelAdmin/:
...

def has_delete_permission/self, request, obj=None/:
return False


然后它不会显示删除按钮,不会允许您删除管理员界面中的对象。

三叔

赞同来自:

你可以关闭 "delete selected" 在整个网站上的行动:


from django.contrib.admin import site
site.disable_action/'delete_selected'/


如果您需要启用此操作,请添加
'delete_selected'

在行动列表中:


actions = ['delete_selected']


https://docs.djangoproject.com ... ction

快网

赞同来自:

如果要删除所有操作:


class UserAdmin/admin.ModelAdmin/:
model = User
actions = None


如果您需要一些特定的动作:


class UserAdmin/admin.ModelAdmin/:
model = User
actions = ['name_of_action_you_want_to_keep']

詹大官人

赞同来自:

如果将此模型用作其他型号的外部键。
然后使用限制
PROTECT

对于此外部密钥,您可以禁用此模型的删除 Django admin.

例如,


class Exam/models.Model/:
student = models.ForeignKey/User, on_delete=models.PROTECT/
marks = models.IntegerField/default=0/


通过添加限制
PROTECT

在模型中
User

通过模型中存在的外部键
Exam

, 我关掉了机会 /在模型中
Django admin

或在另一个地方/ 删除学生
/User/

, 谁写了考试。

要回复问题请先登录注册