锁定系统

时间:2016-02-17 10:02:39

标签: python django

我正在编写一个迷你CRM系统,两个用户可以同时登录,他们可以回复收到的消息。但是,问题是他们可能会响应相同的消息,因为消息只有在单击“响应”按钮时才会消失。有什么建议让我锁定系统吗?

2 个答案:

答案 0 :(得分:1)

添加一些布尔字段(已回答,is_answered等等)并检查每个"响应"点击它是否回答。 希望它会有所帮助。

答案 1 :(得分:1)

对于“乐观锁定”方法来说,这听起来很棒。以下是我用过的两种方法,取得了很大的成功。通常,我将这两种方法结合起来,以确保POST上不匹配的对象实例不会丢失任何数据。

  1. 简单方法:在模型中添加版本字段。在POST上,检查POSTed版本号与对象的版本号。如果它们不匹配,则引发验证错误。如果匹配,请将版本增加1。

  2. 更优雅的方法:Django's Generic Relations(部分内容类型框架)。一个表,用于存储被锁定对象的content_type和object_id,以及“拥有”该锁定的用户。在GET请求上检查此锁定,如果其他用户“锁定”,则禁用POST。 '释放'页面卸载,会话结束或浏览器退出时的锁定。您可以通过这种方法获得非常有创意。