gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-03 13:43:17 25 4
gpt4 key购买 nike

我有一个包含“用户名”和“成绩”的表格。成绩的格式为 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com