为什么这个模板函数调用不起作用?

时间:2012-02-12 21:58:27

标签: python django django-models django-templates

我的models.py中有以下代码:

class DealInstance(models.Model):
    start = models.DateTimeField()
    end = models.DateTimeField()

    def get_remaining_time(self):
        return end - start # returns a datetime.timedelta object

我现在想在模板中使用get_remaining_time函数:

<p>Time diff: {{ deal_instance.get_remaining_time.days }}</p>

但是,即使我更改get_remaining_time以返回字符串文字,这也不起作用。

此代码基于https://docs.djangoproject.com/en/dev/topics/templates/#accessing-method-calls

1 个答案:

答案 0 :(得分:0)

尝试打印(从模板中)表达式的每个部分。例如。 [{{deal_instance}}] [{{deal_instance.get_remaining_days}}] [{{deal_instance.get_remaining_days.days}}](注意:我在表达式周围使用[],以便显示空字符串)。你可能会发现其中一个是无效的,而且有点太友好的模板解析器只是返回一个空字符串。

另外,请查看返回页面的来源。如果表达式的输出是对象引用,则默认情况下它将以< some sort of class info >格式打印出来,大多数浏览器都将其视为伪造的HTML标记并忽略它。