禁用数据库中的项目而不是删除它

时间:2012-01-12 09:57:26

标签: django postgresql django-admin

是否有办法禁用数据库中的项目而不是删除它。

任何有想法的人,请回复

3 个答案:

答案 0 :(得分:1)

我想这取决于“禁用”的含义。您可以添加BooleanField,例如disabled,然后过滤您的查询(可能最好通过custom manager完成),而不是

Mymodel.objects.all()

DO

Mymodel.objects.filter(disabled=False).all()

答案 1 :(得分:1)

不在SQL中。您可能最终要做的就是解决问题

  • 通过触发器或存储过程将“禁用”值移动到另一个表

  • 使用默认值1向表中添加“活动”标志,并将其设置为0而不是删除。这将需要在每个查询(和active = 1)上不需要查询禁用记录的额外条件。

答案 2 :(得分:0)

如果行有效,您可以在表中设置一个字段,如果该行被停用,则可以设置该字段。