在多个用户的Django list_editable中防止编辑冲突

时间:2012-05-09 22:09:44

标签: django listview django-admin

我想使用Django的list_editable功能,允许我的网站管理员一次快速更新一大堆项目,甚至只是快速更新单个项目。但是,此站点上有多个管理员。

我主要担心的是:如果一位管理员编辑记录A(B,C)而另一位管理员在同一页面上编辑记录D(E,F)来自不同的计算机,会发生什么?每个用户点击“保存”时提交的所有可见记录的信息,还是仅提交的修改记录?换句话说,第二个提交者是否会覆盖第一个提交者的数据,即使他们正在编辑不同的记录?

不是问题,而是我可以忍受的问题:如果两个用户编辑同一条记录会发生什么?我假设第二次提交将覆盖第一次提交,即使Django有适当的地方来解决我的主要问题,但如果Django在某种程度上防止这里的错误也会很好。

1 个答案:

答案 0 :(得分:1)

Django没有内部防撞系统。但您可以使用django-reversion或入侵管理员get_changelist_formssaving forms来手动合并不同用户的更改(例如,如果对象不相同,则将表单验证更改为失败)。