Django 阅读模型列表并阻止新创建
我有一个Django 阅读模型列表并阻止新创建,django,Django,我有一个订单模型,用户可以创建和修改它 管理员用户可以获取一份当天所有订单的列表并发送该列表 我想在管理员发送列表之前,它会关闭当天的订单,这样订单将关闭到第二天 目前,我真的不知道如何避免比赛条件: -管理员关闭订单并获取列表 -用户同时提交订单,并认为其订单已被考虑在内 到目前为止,我设想的解决方案是: 管理员点击一个按钮,该按钮提交了一份虚假订单,表明当天订单已关闭 过帐表单时,将检索订单列表 在发布订单时,我将首先检查是否存在虚假订单。如果存在,验证将失败 但我认为比赛条件仍然是可能
订单
模型,用户可以创建和修改它
管理员用户可以获取一份当天所有订单的列表并发送该列表
我想在管理员发送列表之前,它会关闭当天的订单,这样订单将关闭到第二天
目前,我真的不知道如何避免比赛条件:
-管理员关闭订单并获取列表
-用户同时提交订单,并认为其订单已被考虑在内
到目前为止,我设想的解决方案是:
- 管理员点击一个按钮,该按钮提交了一份虚假订单,表明当天订单已关闭
- 过帐表单时,将检索订单列表
- 在发布订单时,我将首先检查是否存在虚假订单。如果存在,验证将失败
是否有可能在数据库级别对其进行管理?例如,在关闭命令时,在数据库中添加日期约束(新订单的日期必须至少是第二天的数据)?您可以使用数据库事务的原子装饰器来检查错误订单。如果在atomic decorator中添加一个检查来检查竞争条件,它会抛出一个错误并重置截止日管理命令 您可以对数据库事务使用原子装饰器来检查错误的顺序。如果在atomic decorator中添加一个检查来检查竞争条件,它会抛出一个错误并重置截止日管理命令 谢谢,我不知道这件事。我将尝试实现它,但无论如何它看起来是正确的解决方案。谢谢,我不知道这一点。我将尝试实现它,但无论如何,它看起来是正确的解决方案。