Django禁用模型删除

Rya*_*axe 5 python django

因此,每个模型都具有一些常用功能,例如保存删除

删除通常会被覆盖以设置一个布尔字段,例如设置为is_activefalse,这样数据就不会丢失。但是有时存在一个模型,该模型具有的信息一旦创建,就应该始终存在,甚至永远都不会失效。我想知道处理该模型方法的最佳实践delete是什么?

主意

使它变得毫无用处:

def delete(self):
    return False
Run Code Online (Sandbox Code Playgroud)

但这似乎很奇怪。是否可以Meta选择禁用删除功能?有什么“不错”的方法吗?

Dmi*_*nko 2

好吧,这取决于,你不能真正限制删除,因为有人总是可以调用delete()查询集或只是简单的DELETEsql 命令。如果你想禁用 django admin 中的删除按钮,你应该看看这里

  • 而且,如果人们可以访问 django 应用程序,他们就不能访问数据库吗?我会将数据库级别的删除限制为仅限管理员或其他人员。 (2认同)