嗨,我使用缩略图插件来获得图像的宽度和高度,现在我想用从缩略图插件变得高度,像定义img标签的填充:django:如何在模板html页面中进行计算?
<img style="padding-top: {{ img.height/2 }}" src=""/>
但我得到的错误在这里, django不允许这样计算吗?
嗨,我使用缩略图插件来获得图像的宽度和高度,现在我想用从缩略图插件变得高度,像定义img标签的填充:django:如何在模板html页面中进行计算?
<img style="padding-top: {{ img.height/2 }}" src=""/>
但我得到的错误在这里, django不允许这样计算吗?
不幸的不是。你需要使用过滤器,像一个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 }}
有时候你有做模板。以下DjangoSnippet伟大的作品。虽然你可以滥用它,但有时候它会使生活更简单。
ExprTag - Calculating python expression and saving the result to a variable
注:1.3没有测试,但是正常工作与之前的事情。
有一个Python包,提供了基本的数学Django的模板:https://pypi.python.org/pypi/django-mathfilters
有了这个,你可以做到这一点:
{% load mathfilters %}
<img style="padding-top: {{ img.height|div:2 }}" src=""/>
我可以使用分而负内置的过滤器? – 2011-05-01 14:32:34
这样的过滤器是否存在?文档(http://docs.djangoproject.com/en/1.3/ref/templates/builtins/)没有列出它们,这就是我建议编写自己的原因。 – Xion 2011-05-01 14:34:28
这种事情不会被添加到内置的过滤器:http://code.djangoproject.com/ticket/361 – Acorn 2011-05-01 14:38:46