Django:如何在模板html页面内进行计算?

2024-05-23 22:20:34 发布

您现在位置:Python中文网/ 问答频道 /正文

嗨,我正在使用缩略图插件来获取图像的宽度和高度,现在我想使用从缩略图插件获取的高度来定义img标记的填充,例如:

<img style="padding-top: {{ img.height / 2 }}" src=""/>

但我这里有错误,django不允许这样计算吗?


Tags: django标记图像src插件img宽度高度
3条回答

有时你只需要在模板中执行。下面的DjangoSnippet工作得很好。尽管你可以滥用它,但有时它会让生活更简单。

ExprTag - Calculating python expression and saving the result to a variable

注:未在1.3中测试,但在此之前的任何测试都可以正常工作。

不幸的是没有。您需要使用过滤器,比如内置的add过滤器:

{{ img.height|add:1 }}

但是,div不是;您可以自己实现它,但是:

from django import template
register = template.Library()

@register.filter
def div( value, arg ):
    '''
    Divides the value; argument is the divisor.
    Returns empty string on any error.
    '''
    try:
        value = int( value )
        arg = int( arg )
        if arg: return value / arg
    except: pass
    return ''

用法类似,即:

{{ img.height|div:2 }}

有一个Python包提供了Django模板的基本数学:https://pypi.python.org/pypi/django-mathfilters

有了这个,你可以做到:

{% load mathfilters %}
<img style="padding-top: {{ img.height|div:2 }}" src=""/>

相关问题 更多 >