python - 在 DJANGO 模板中总结数据库中的值

标签 python django django-templates

我有一个包含“用户名”和“成绩”的表格。成绩的格式为 A+、A、A-、B+ 等。我正在尝试用数值显示每个用户的总成绩。例如:

约翰 A+

杰瑞 B+

约翰 C-

汤姆 A-

杰瑞 B+

因此,如果 A+ = 10 以及 A =9 和 A- =8 等之后的所有其他内容,我如何计算 John 获得的总成绩。我试图在 DJANGO 模板 (.html) 文件中执行此操作,但似乎根本无法实现计数器

最佳答案

您可以为此编写自己的模板过滤器。在模板文件夹中名为“templatetags”的文件夹中创建一个名为“grade_filters.py”的新 python 文件,并声明一个新的模板标签,如下所示:

from django import template

register = template.Library()

def grade_to_number(grade):
    map_dict = {'A+': 10, 'A':9, 'A-':8}
    if grade in map_dict:
        return map_dict[grade]
    else:
        return 0


@register.filter(name='sum_of_grades')
def return_item(grade_list):

    new_grades_list = [grade_to_number(grade) for grade in grade_list]
    try:
        return sum(new_grades_list)
    except:
        return 0

@register.filter(name='get_list_for_student')
def return_item(student_list, name):

    return student_list.filter(name=name)

现在,在您的模板中,您可以加载新的模板标签

{% load grade_filters %}

计算一个学生的总成绩:

{{ gradelist|get_list_for_student:'John'|sum_of_grades }}

关于python - 在 DJANGO 模板中总结数据库中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25611216/

相关文章:

python - SQLAlchemy 同时进行一对一和一对多(AmbigouslyForeignKeysError)

javascript - Django - 我已将 onclick 函数添加到 html 中,每当我单击不同的按钮时,它都会呈现相同的数据。如何解决这个问题?

Django:在模板中分配变量

Django - CreateView - 如何声明变量并在模板中使用它

python - 字符串到时间戳的转换

带点的 Python 函数

python - 正则表达式将 3 组 : 1st word, 最后一个单词和句子的其余部分

django 从相关模型(外键)获取值

python - Django 中 isinstance() arg 2 必须是类型或类型元组错误

python - 如何显示按外键分组的对象