【发布时间】:2018-04-07 21:19:13
【问题描述】:
所以我正在为一家钢铁酸洗厂开发一个基于网络的工艺模拟器。 我在同一个模板上有 6 种不同类型的表单(来自 6 个不同的模型),它们都应该由同一个按钮提交。以下是对我的问题很重要的模型:
class Settings(models.Model):
simulation = models.ForeignKey(Simulation, on_delete=models.CASCADE)
final_time = models.IntegerField(default=3000)
time_steps = models.IntegerField(default=50)
film_thickness = models.FloatField(default=0.001)
plate_thickness = models.FloatField(default=0.0005)
plate_width = models.FloatField(default=10.0)
number_of_pickling_tanks = models.PositiveSmallIntegerField(default=4)
number_of_rinsing_tanks = models.PositiveSmallIntegerField(default=4)
coil_temperature = models.FloatField(default=373.0)
system_pressure = models.FloatField(default=100000.0)
total_vaporization = models.FloatField(default=0.005)
plate_velocity = models.FloatField(default=3.0)
class PicklingTank(models.Model):
settings = models.ForeignKey(Settings, on_delete=models.CASCADE)
number = models.PositiveSmallIntegerField()
volume = models.FloatField(default=30)
concentration_hcl_initial = models.FloatField(default=180.84)
concentration_fecl2_initial = models.FloatField(default=11.35)
concentration_fecl3_initial = models.FloatField(default=5.81)
temperature_initial = models.FloatField(default=323.15)
hasextinlet = models.BooleanField(default=False)
所有这些都是如下形式的:
class SettingsForm(forms.ModelForm):
class Meta:
model = Settings
fields = '__all__'
class PicklingTankForm(forms.ModelForm):
class Meta:
model = PicklingTank
fields = '__all__'
我已经研究过如何只用一个按钮提交多个表单 (django submit two different forms with one submit button),但我的问题完全不同:
PicklingTankForms 的数量根据用户在 Settings.number_of_pickling_tanks 中输入的值动态变化(我正在使用我的 views.py 渲染 PicklingTankForm 的一个实例,并使用 JS 在“输入时”复制它)。
如果我不知道用户要选择多少个 PicklingTankForms,我怎么能在他按下 Submit 时为每个 PicklingTankForm 创建一个 PicklingTank 实例?
谢谢!
【问题讨论】:
-
这正是表单集的用途。
标签: python django forms dynamic submit