我的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。
答案 0 :(得分:0)
尝试打印(从模板中)表达式的每个部分。例如。 [{{deal_instance}}] [{{deal_instance.get_remaining_days}}] [{{deal_instance.get_remaining_days.days}}]
(注意:我在表达式周围使用[],以便显示空字符串)。你可能会发现其中一个是无效的,而且有点太友好的模板解析器只是返回一个空字符串。
另外,请查看返回页面的来源。如果表达式的输出是对象引用,则默认情况下它将以< some sort of class info >
格式打印出来,大多数浏览器都将其视为伪造的HTML标记并忽略它。