django管理中如何避免写冲突?

时间:2009-05-08 03:09:14

标签: django django-admin

假设有两个(或更多)django管理员已经读取了数据库记录,然后更改并保存它。没有数据库问题,但是一些管理员会惊讶于他们写的记录被覆盖了。

此问题是否得到解决?一种方法是有一个明确的“正在编辑”按钮,它在记录中设置一个标志。如果另一个管理员读取相同的记录然后单击他的“正在编辑”,则会警告他之前正在进行编辑。或者可以在记录中添加一个字段,该字段在保存记录时递增。如果该字段与读取记录时的字段不同,则会向管理员发出警告,说明该记录在读取后已被其他人更改。

是否有本地django处理此方法?

2 个答案:

答案 0 :(得分:2)

Django管理员没有开箱即用的任何写冲突保护。自己添加它并不难。就个人而言,我会采取“版本号字段”的方法。

答案 1 :(得分:0)

通常,这是您想要了解数据库的事务隔离功能的地方,因为这就是它拥有它们的原因。

如果您真的不愿意这样做,那么在应用程序层执行此操作会有各种模式,但没有规范的方法可以执行此操作 - 有些人设置了一种“最后访问”时间戳并拒绝允许之后在一定时间内编辑,其他人设置版本号等等。