Я работаю над сайтом обработки результатов и пытаюсь обновить несколько полей в каждой строке таблицы. Пользователь должен иметь возможность вводить обновленные значения CA Score и EXAM Score, а также должен обновлять значения CA Score и EXAM каждого учащегося, которые были представлены. изображение страницы
Кто-то задает тот же вопрос здесь , пытаясь обновить одно поле. Я пытался работать с предоставленным там решением, но не смог заставить его удовлетворить мои потребности
шаблон
<form action="" method="post"> {% csrf_token %}
{% for student in students %}
<tr>
<td>{{ student.id_number }}</td>
<td>
<input type="number" value="{{ student.ca }}" name="student_{{ student.id }}">
</td>
<td>
<input type="number" value="{{ student.exam }}" name="student_{{ student.id }}">
</td>
</tr>
{% endfor %}
<tr>
<td><input type="submit" value="Save"></td>
</tr>
</tbody>
</table>
</form>
вид
def add_score_for(request, id):
if request.method == 'GET':
students = TakenCourse.objects.filter(course__allocated_course__lecturer__pk=request.user.id).filter(course__id=id)
context = { "students":students}
return render(request, 'result/add_score_for.html', context)
if request.method == 'POST':
data = request.POST.dict()
data.pop('csrfmiddlewaretoken', None)
for i in data.items():
obj = TakenCourse.objects.get(id=i[0].split("_")[1])
if not str(obj.ca) == str(i[1]): # if i do i[2] trying to get for exams it raise 'tuple index out of range'
obj.ca = i[1]
obj.save()