生徒とエージェントの 2 つのモデルがあります。学生モデルには選択フィールドがあるため、フォームに ModelForm を使用しています。これは素晴らしいことです。すべての生徒にはエージェントがいます:
class Student(models.Model):
ncode = models.CharField(max_length=12)
name = models.CharField(max_length=40)
family = models.CharField(max_length=60)
father = models.CharField(max_length=40)
telephone = models.CharField(max_length=18, blank=True)
address = models.CharField(max_length=256)
reagent = models.ForeignKey(Reagent)
state = models.IntegerField(choices=STUDYING_STATUS)
degree = models.IntegerField(choices=DEGREE_STATUS)
class Reagent(models.Model):
name = models.CharField(max_length=40)
family = models.CharField(max_length=60)
telephone = models.CharField(max_length=18)
これらはフォームです:
class Student_Form(ModelForm):
class Meta:
model = Student
class Reagent_Form(ModelForm):
class Meta:
model = Reagent
しかし、私はエージェントと学生の両方を 1 つのフォームにまとめるつもりだったので、テンプレートで 1 つのフォームにまとめました。
<form action="" method="POST"> {% csrf_token %}
<table>
{{ student_form.as_table}}
{{ reagent_form.as_table }}
</table>
<input type="submit" value="Add">
</form>
私の問題は、学生フォームとエージェントフォームの別々のインスタンスに入力された情報を取得するにはどうすればよいですか? テンプレートにフォーム情報が 1 つしかない場合は、f = StudentForm(request.POST)を使用します。しかし、この場合、フォームは混在しています