Я должен ввести оценки, полученные всеми учениками в классе.Поэтому я создал шаблон с текстовым полем для хранения меток, соответствующих каждому номеру рулона.Идентификатором каждого текстового поля является номер броска соответствующего учащегося.
Как передать эти отметки из каждого поля в views.py
, чтобы они могли быть сохранены в базе данных?
Я пытался использовать Javascript, но я не знаю, как получить доступ к таблице в базе данных (класс по моделям), чтобы извлечь номер броска каждого учащегося и получить доступ к текстовому полю.
models.py
class MarksForm(forms.Form):
exam_type = forms.CharField(label='Exam Name', widget=forms.Select(choices=EXAM_TYPES))
entered_marks = forms.FloatField(label='Marks', required=True)
def clean(self):
examtype = self.cleaned_data.get("exam_type")
enteredmarks = self.cleaned_data.get("entered_marks")
return self.cleaned_data
views.py
@csrf_protect
@login_required
def edit_marks(request, course_code):
print ('Inside Views')
user = request.user
extrainfo = ExtraInfo.objects.get(user=user)
if extrainfo.user_type == 'faculty':
instructor = Curriculum_Instructor.objects.filter(instructor_id=extrainfo)
for ins in instructor:
if ins.curriculum_id.course_code == course_code:
registered_students = Register.objects.filter(curr_id = ins.curriculum_id.curriculum_id)
for reg in registered_students:
identity = Register.objects.get(student_id=reg.student_id, curr_id=curriculum[0])
m_id = identity.r_id
student_marks = 'enteredmarks'+identity.student_id
score = request.POST.get(studentmarks)
exam = request.POST.get('examtype')
Marks.objects.create(
mid=m_id,
exam_type=exam,
marks=score
)
context= {'registered_students': registered_students }
return render(request, 'coursemanagement/viewperformance.html', context)
urls.py
urlpatterns = [
url(r'^$', views.viewcourses, name='viewcourses'),
url(r'^(?P<course_code>[A-z]+[0-9]+[A-z]?)/$', views.course, name='course'),
url(r'^(?P<course_code>[A-z]+[0-9]+[A-z]?)/edit_marks$', views.edit_marks, name='edit_marks'),
viewperformance.html
{% load static %}
{% block viewperformance %}
<div>
<form class="ui large form" id="entermarks" method="POST"> {% csrf_token %}
<select name="examtype" id = "examtype" style="width: 100px">
<option value = "1">Quiz 1</option>
<option value = "2">Quiz 2</option>
<option value = "3">Mid Sem</option>
<option value = "4">End sem</option>
</select>
<table class="ui very basic collapsing celled table">
<thead>
<tr>
<th>Students</th>
</tr>
</thead>
<tbody>
{% for x in registered_students %}
<tr>
<td>
<div class="content">
<p style="text-align:center">{{x.student_id}}</p>
var student = x.student_id;
</div>
</td>
<td>
<input type="number" id="enteredmarks{{x.student_id}}" required="true" />
</td>
</tr>
{% endfor %}
</tbody>
</table>
<input type="submit" class="ui primary button" id="submit_marks" value="Upload" href="/ocms/{{course.course_id}}/edit_marks"/>
</form>
</div>
{% endblock %}```
When I try to print something inside view.py, it does not appear. Why is html not getting linked to its corresponding view(edit_marks)?