Django - 模板中字段的自定义表示

时间:2015-02-02 00:20:58

标签: python django django-templates

我想在我的模型中有一个字段,表示根据其值自动调整。假设我有这个玩具模型:

class Article(models.Model):
    title = models.CharField(max_lenght=256)
    visits = models.PositiveIntegerField(default=0)

我想在我的模板中写{{article.visits}},如果值是(例如),45,它将呈现" 45",但如果值为1233,则将打印" 1.2k"。

使用模板过滤器进行格式化非常简单,但我想在任何情况下自动执行此操作。可能吗?你有什么建议?

1 个答案:

答案 0 :(得分:3)

Article模型添加属性:

class Article(models.Model):
    ...
    @property
    def visits_display(self):
        return self.visits if visits < 1000 else '%.1fk' % (self.visits/1000.0)

在模板中使用此属性:

{{ article.visits_display }}