无法解析某些字符:|(total/4)||floatformat:2

问题描述 投票:0回答:1
<td>
{% with data.marks1|add:data.marks2|add:data.marks3|add:data.marks4 as total %}
{{ (total/4)|floatformat:2 }}
{% endwith %}
我正在 Django 中制作一个简单的 CRUD 应用程序,但反复出现此错误。 我所做的任何事情都无法解决此错误
python django syntax-error
1个回答
0
投票

由于使用管道符号|而发生错误在 with 标记内,Django 的模板引擎无法在该上下文中正确解析该标记。以下是解决问题的方法:

#create a custom filter template:
In your templatetags directory (if you don’t have one, create it), add a new file, e.g., math_filters.py:
 
from django import template
register = template.Library()
@register.filter
def div(value, arg):
    try:
        return float(value) / float(arg)
    except (ValueError, ZeroDivisionError):
        return None

# Now load the custom filter in your tempalte
{% load math_filters %}
<td>
{% with total=data.marks1|add:data.marks2|add:data.marks3|add:data.marks4 %}
    {{ total|div:"4"|floatformat:2 }}
{% endwith %}
</td>
© www.soinside.com 2019 - 2024. All rights reserved.