我是Django的新手,我正在尝试做一些简单的数学运算来计算图像的比例。在我的模型中,我上传了一个标题图片,它也存储了宽度和高度。
使用这些值,我创建了一个在前端使用的比率。当我显示这个值时,它返回0.我也尝试过使用floatformat之类的过滤器,它什么也没做。
我的图片尺寸为 - 宽度:1920px,高度:1098。
我正在生成这样的比例:
高度/宽度。
我期望值为:0.571875
如前所述,它在前端时只返回0。如果我使用floatformat它只返回0.00等。我知道值是存在的,因为它们返回正常。
以下是我的模型中使用的一些示例代码:
class Article(models.Model):
header_width = models.IntegerField(default=1)
header_height = models.IntegerField(default=1)
header = models.ImageField(width_field='header_width',height_field='header_height')
def ratio (self):
return self.header_height / self.header_width
然后在我的模板中,我正在做这样的事情:
<img src="{{ MEDIA_URL }}{{ article.header }}" data-ratio="{{ article.ratio }}" alt="header image">
希望这是足够的信息。如果没有,我会尝试添加更多,如果你需要它。
谢谢!
答案 0 :(得分:2)
使用python 2.7时,/
运算符在两个操作数都是整数时执行整数除法。你很可能想写:
return float(self.header_height) / float(self.header_width)