我有一个 Django 表单,它根据带有仓库项目的数据库值生成输入“数字”字段。处理完所有输入数据后,将存储在临时数据库中。因此,主仓库数据库的值(如产品数量)每次都会发生变化。主要问题是 在所有这些步骤之后,表单不会更新(例如:最大输入值)。只有在服务器重新启动时才能更新表单。
我的表单类定义如下: (对于每次迭代,循环创建一个新变量(输入字段名称)并定义最大和最小输入值。)
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)
我做错了什么?
请您参考如下方法:
您应该在表单的 __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)
