2

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

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

是否有本地 django 方式来处理这个问题?

4

2 回答 2

2

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

于 2009-05-08T14:25:14.287 回答
0

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

如果您真的不想这样做,那么在应用程序层存在各种模式来执行此操作,但没有规范的方法来做到这一点——有些人设置了一种“最后访问”时间戳并拒绝允许在在此之后的某个时期,其他人设置版本号等。

于 2009-05-10T02:26:39.097 回答