我有一个我以前从未见过的奇怪问题,我有点陷入下一步的困境。
我们有一个相当标准的Django应用程序,其中一些表单使用基于类的视图,我们发现状态在表单之间以奇怪的方式混合。
例如,用户A在网站上并填写表单X并设置其邮政编码。
用户B完全转到另一个表单,形成Y,但邮政编码字段已填入用户A的邮政编码。
字段共享相同的名称,但是完全独立的形式。此示例中的字段是标准的Django CharField。
我没有设法使用Django dev服务器在本地尝试复制此行为。我已经将gunicorn升级到最新版本,我已将其设置为使用单个工作程序,我已经在Django项目中禁用缓存,我可以找到它。
它停留在Django 1.3.7上,升级到支持的版本并不是一个简单的应用程序。它在nginx后面以gunicorn 18运行。
我注意到Django在基于类的视图中提到了线程安全性,但我没有看到我们将任何可变对象传递给视图,而且它都是一个相当的计划视图和ModelForm。 Django的会话存储是默认的(它以前是其他东西,但我删除它使用Django默认值,我认为是数据库)。
有什么想法可以尝试解决这个问题吗?
谢谢!
答案 0 :(得分:2)
想出来 - 结果是它与1.3中的get_initial的行为有关,在Django 1.4中已经改变了
我们更改了get_initial以使用dict的副本而不是默认实现,现在一切都很好:)