Python Django重复变量/缓存问题?

Python Django重复变量/缓存问题?,python,django,wsgi,Python,Django,Wsgi,我正在尝试为Django构建一个更好/更强大的表单类。除了这些子表单之外,它工作得很好。实际上,在我重新启动apache之后,它就可以正常工作,但是在我刷新页面几次之后,我的HTML输出开始如下所示: <input class="text" type="text" id="pickup_addr-pickup_addr-pickup_addr-id-pickup_addr-venue" value="" name="pickup_addr-pickup_addr-pickup_addr-p

我正在尝试为Django构建一个更好/更强大的表单类。除了这些子表单之外,它工作得很好。实际上,在我重新启动apache之后,它就可以正常工作,但是在我刷新页面几次之后,我的HTML输出开始如下所示:

<input class="text" type="text" id="pickup_addr-pickup_addr-pickup_addr-id-pickup_addr-venue" value="" name="pickup_addr-pickup_addr-pickup_addr-pickup_addr-venue" />
class SomeForm(Form):
    someField = Field(....)
    ...
如果您需要更多代码,请告诉我。。。我知道很多,但我就是不知道是什么原因造成的!我甚至没有使用任何缓存中间件


复制/克隆字段首先会生成以下输出:

<label for="None">None</label>
<input class="text" type="text" id="id-pickup_address-venue" value="" name="pickup_address-venue" />

field.name
field.label
的设置方式完全相同。。。事实上,
字段.id
正确显示在
上,但当我尝试打印标签时,相同的值突然消失了。。。。区别在于
位由
小部件
类打印,而
标签
直接从我的模板打印。。。我猜是。。。。哦,我明白了,这仍然是指未设置的类级别/静态字段,而不是实例字段…

您可能是这样声明表单的:

<input class="text" type="text" id="pickup_addr-pickup_addr-pickup_addr-id-pickup_addr-venue" value="" name="pickup_addr-pickup_addr-pickup_addr-pickup_addr-venue" />
class SomeForm(Form):
    someField = Field(....)
    ...
现在,这意味着
someField
的一个实例实际上将在所有
SomeForm
实例之间共享。在
\uuuu init\uuuu
中,您正在更改字段的属性,这将影响所有表单,而不仅仅是当前表单,包括将来创建的表单

要解决此问题,可以为每个实例制作字段的副本:

field = copy(field)  #maybe you need deepcopy instead
setattr(self, name, field)   

然后更改副本的属性。

是的,就是这样。非常感谢你!不知道我是否能想出那个!