Добавление процентного соотношения оценок учеников в таблицу в программе crud на Django

<table>
    {% for data in result %}
    <tr>
        <td>{{ data.id }}</td>
        <td>{{ data.name }}</td>
        <td>{{ data.marks1 }}</td>
        <td>{{ data.marks2 }}</td>
        <td>{{ data.marks3 }}</td>
        <td>{{ data.marks4 }}</td>
        <td>
            {% with data.marks1|add:data.marks2|add:data.marks3|add:data.marks4 as total %}
                {{ total }}
            {% endwith %}
        </td>
    </tr>
    {% endfor %}
</table>

//show.html (код выше) - Это без функции math-filters

//views.py

from django.http import HttpResponse
from django import template
from django.shortcuts import render
from .models import Student


def add(request):
    if request.method == 'POST':
        if request.POST.get('name') and request.POST.get('marks1'):
            stud = Student()
            stud.name = request.POST.get('name')
            stud.marks1 = request.POST.get('marks1')
            stud.marks2 = request.POST.get('marks2')
            stud.marks3 = request.POST.get('marks3')
            stud.marks4 = request.POST.get('marks4')
            stud.save()
            return render(request, 'add.html')
    else:
        return render(request, 'add.html')


def show(request):
    data = Student.objects.all()
    return render(request, 'show.html', {'result': data})


register = template.Library()


@register.filter
def div(value, arg):
    try:
        return float(value) / float(arg)
    except (ValueError, ZeroDivisionError):
        return None

Файл add.html работает совершенно нормально. Я попробовал добавить это после тега td, который содержит функцию total, надеясь, что это сработает, но в итоге выдается ошибка.

{% load math_filters %}
        <td>
        {% with total=data.marks1|add:data.marks2|add:data.marks3|add:data.marks4 %}
            {{ total|div:"4"|floatformat:2 }}
        {% endwith %}
        </td>

введите описание изображения здесь
Изображение возникающей ошибки.

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