【问题标题】:Preventing edit conflict in Django's list_editable with multiple users防止 Django 的 list_editable 与多个用户发生编辑冲突
【发布时间】:2012-05-18 11:34:17
【问题描述】:

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

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

问题不大,但我可以忍受:如果两个用户都编辑同一条记录会发生什么?我假设第二次提交将覆盖第一次,即使 Django 有一些东西可以解决我的主要问题,但是如果 Django 也能以某种方式防止这里的错误,那就太好了。

【问题讨论】:

  • 在 1.4 上,整个集合都被修改了,而不仅仅是修改后的实例,所以是的,最后保存的人将设置状态...

标签: django listview django-admin


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-09-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-24
    • 2019-04-19
    相关资源
    最近更新 更多