Как динамически отображать поля ввода формы на основе выбора пользователя из выпадающих опций

У меня есть форма, которая используется для ввода оценок учеников по предметам, на этой форме у меня есть 3 выпадающих окна, которые зависят друг от друга, я хочу добиться того, что после того, как пользователь выберет класс, в котором учатся ученики, я хочу, чтобы поля ввода для каждого предмета появлялись на той же форме, только в том классе, который выбрал пользователь, чтобы пользователь мог вводить оценки учеников по предметам, но мне трудно понять, как реализовать такое поведение. Короче говоря, я хочу показывать поля ввода для предметов на основе класса, который выбрал пользователь

form.py

forms.py

# deal with entering results
class ResultForm(forms.ModelForm):

  class Meta:
    model = Result

    fields = ["room", "exam","student","percentage"]

  def __init__(self, *args, **kwargs):
    super().__init__(*args, **kwargs)
    self.fields["exam"].queryset = Exam.objects.none()

    if "room" in self.data:
      try:
        class_id = int(self.data.get("room"))
        self.fields['exam'].queryset = Exam.objects.filter(room=class_id).order_by('name')
      except(ValueError,TypeError):
        pass
    elif self.instance.pk:
      self.fields['exam'].queryset = self.instance.classroom.exam_set.order_by('name')
  
  def __init__(self, *args, **kwargs):
    super().__init__(*args, **kwargs)
    self.fields["student"].queryset = Exam.objects.none()

    if "room" in self.data:
      try:
        class_id = int(self.data.get("room"))
        self.fields['student'].queryset = Student.objects.filter(room=class_id).order_by('name')
      except(ValueError, TypeError):
        pass
    elif self.instance.pk:
      self.fields['student'].queryset = self.instance.classroom.exam_set.order_by('name')


# deal with entering grade per subject
class MarkForm(forms.ModelForm):

  class Meta:
    model = Mark

    fields = ["result", "course","grade"]

 
Вернуться на верх