我有一个Django表单,可以生成输入" number"具有仓库项的数据库值的字段。处理完后,所有输入数据都存储在临时数据库中。因此,主仓库数据库的值(如产品数量)每次都会发生变化。主要问题是 完成所有这些步骤后,表单不会更新(例如:最大输入值)。只有在重新启动服务器时才可以使用更新表单。
我的表单类定义如下: (对于每次迭代,循环创建一个新变量(输入字段名称)并定义最大和最小输入值。)
class StorehouseItems(forms.Form):
items = Storehouse.objects.all()
for key in items:
locals()[key.id] = forms.IntegerField(label=key.name+"<br />(max "+str(key.amount)+" "+key.prefix+")",
min_value=0, max_value=key.amount, required=False)
我做错了什么?
答案 0 :(得分:2)
您应该在表单的__init__()
方法中添加字段:
class StorehouseItems(forms.Form):
def __init__(self, *args, **kwargs):
super(StorehouseItems, self).__init__(*args, **kwargs)
for key in Storehouse.objects.all():
field = str(key.pk)
label = "%s<br />(max %s%s)" % (key.name, key.amount, key.prefix)
self.fields[field] = forms.IntegerField(label=label,
min_value=0,
max_value=key.amount,
required=False)