2
因此,每个模型都带有一些常用功能,例如save和delete。Django禁用模型删除
删除通常会被覆盖以将诸如is_active
之类的布尔字段设置为false,这样数据就不会丢失。但是有时候存在一个模型,它具有的信息一旦创建就应该始终存在,甚至永远不会“不活跃”。我想知道什么最佳实践处理这个模型的delete
方法会是什么?
想法
使其根本没用:
def delete(self):
return False
但只是似乎很奇怪。是否有Meta
选项来禁用删除?有没有“好”的方法来做到这一点?
Django admin与此无关。我知道我无法摆脱SQL'DELETE',但我想以一种很好的方式将它从模型和查询集中移除。只有那些能够删除这些实例的人才能够访问实际的数据库,但那些有权访问django查询的人不应该能够 –
然后是的,重写模型上的删除并使用自定义管理器创建自定义查询集禁用该功能。您还需要查看通过遍历关系可以获得的相关查询集。 –
而且如果人们有权访问django应用程序,他们是否有权访问数据库?我将数据库级别的删除限制为只有管理员或其他东西。 –