私は鋼鉄酸洗プラント用のWebベースのプロセスシミュレータに取り組んでいます。 同じテンプレートに6種類のフォーム(6種類の異なるモデル)があります。同じボタンですべて送信する必要があります。ここに私の質問には関係のモデルは以下のとおりです。Djangoで可変数のフォームを提出する
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)
これらのすべてが作られていますフォームは、のように:私はすでに1つのボタンで、いくつかのフォームを送信する方法についての私の研究を行ってきた
class SettingsForm(forms.ModelForm):
class Meta:
model = Settings
fields = '__all__'
class PicklingTankForm(forms.ModelForm):
class Meta:
model = PicklingTank
fields = '__all__'
のみ
PicklingTankFormsの数は、ユーザーがSettings.number_of_pickling_tanksで入力した値によって動的に変化します(私は、views.pyを使用してPicklingTankFormの1つのインスタンスをレンダリングし、それを "入力を使用して "JSを使用して)。
ユーザーが選択するPicklingTankFormsの数がわからない場合、Submitを押すと、PicklingTankFormごとにPicklingTankのインスタンスを1つ作成するにはどうすればよいですか?
ありがとうございました!
これはまさにformsetsのためのものです。 –