Django模型/模板算术问题

时间:2015-07-01 11:31:03

标签: python django math

我是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">

希望这是足够的信息。如果没有,我会尝试添加更多,如果你需要它。

谢谢!

1 个答案:

答案 0 :(得分:2)

使用python 2.7时,/运算符在两个操作数都是整数时执行整数除法。你很可能想写:

return float(self.header_height) / float(self.header_width)