您好我使用缩略图插件来获取图片的宽度和高度,现在我想使用缩略图插件的高度来定义img标签的填充,如:
<img style="padding-top: {{ img.height / 2 }}" src=""/>
但我在这里得到了错误,django不允许这样计算吗?
答案 0 :(得分:28)
不幸的是没有。您需要使用过滤器,例如内置的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 }}
答案 1 :(得分:4)
有一个Python包,为Django模板提供基本数学:https://pypi.python.org/pypi/django-mathfilters
有了这个,你可以这样做:
{% load mathfilters %}
<img style="padding-top: {{ img.height|div:2 }}" src=""/>
答案 2 :(得分:3)
有时您只是 在模板中执行此操作。以下DjangoSnippet效果很好。虽然你可以滥用它,但有时它会让生活更简单。
ExprTag - Calculating python expression and saving the result to a variable
注意:未在1.3中测试过,但在此之前可以正常使用。
答案 3 :(得分:0)
对于CSS(例如您的示例),您可以使用calc()。
<img style="padding-top: calc({{ img.height }} / 2)" src=""/>