I am new to Django, I want to create a model and a model forms where it has three field tow of them are specified and one of them will create dynamically. This dynamic filed can be multiple inputs filed(integer).Further understand you can see this video.
My Code For This
models.py
class SubjectCombination(models.Model):
get_class_name = models.CharField(max_length=20)
get_subject_name = models.CharField(max_length=20)
class Result(models.Model):
class_name = models.CharField(max_length=20)
student_name = models.CharField(max_length=20)
marks = # here i want to get dyanamic filed for all subjects in SubjectCombination model.
forms.py
class SubjectCombinationForm(forms.ModelForm):
class Meta:
model = SubjectCombination
fields = '__all__'
class ResultForm(forms.ModelForm):
class_name = forms.CharField(required=True)
student_name = forms.CharField(required=True)
marks = # What Shoud i write here ?
views.py
def add_result(request):
sbjcmb = SubjectCombination.objects.order_by('id')
students = Student.objects.order_by('id')
if request.method == 'POST':
resultForm = ResultForm(request.POST)
for data in resultForm:
print(data)
else:
resultForm = ResultForm
context = {'subcom':sbjcmb, 'students':students, 'form':resultForm}
return render(request, 'add-result.html', context)
HTML Template
<form class="form-horizontal" method="post">
{% csrf_token %}
{{ form.non_field_errors }}
<div class="form-group">
<label for="{{ form.class_name.id_for_label }}" class="col-sm-2 control-label">Class</label>
<div class="col-sm-10">
<select name="{{ form.class_name.name }}" class="form-control clid" id="{{ form.class_name.id_for_input }}" onChange="getStudent(this.value);" required="required" >
<option value="">Select Class</option>
{% for class in subcom %}
<option value="{{ class.get_class_name }}">{{ class.get_class_name }}</option>
{% endfor %}
</select>
</div>
</div>
<div class="form-group">
<label for="{{ form.student_name.id_for_label }}" class="col-sm-2 control-label ">Student Name</label>
<div class="col-sm-10">
<select name="{{ form.student_name.name }}" class="form-control stid" id="{{ form.student_name.id_for_input }}" required="required" onChange="getresult(this.value);">
<option name="{{ form.student_name.name }}" class="form-control clid" id="{{ form.student_name.id_for_input }}">Select Student</option>
{% for student in students %}
<option value="{{ student.name }}">{{ student.name }}</option>
{% endfor %}
</select>
</div>
</div>
<div class="form-group">
<label for="{{ form.subject_marks.id_for_label }}" class="col-sm-2 control-label">Subjects</label>
<div class="col-sm-10">
<div id="subject">
{% for subject in subcom %}
{% if subject.get_class_name == form.class_name.value %}
<p> {{ subject.get_subject_name }}<input type="text" name="{{ form.subject_marks.name }}" value="" class="form-control" required="" placeholder="Enter marks out of 100" autocomplete="off"></p>
{% endif %}
{% endfor %}
</div>
</div>
</div>
<div class="form-group">
<div class="col-sm-offset-2 col-sm-10">
<button type="submit" name="submit" id="submit" class="btn btn-primary">Declare Result</button>
</div>
</div>
</form>