【发布时间】:2012-02-12 21:58:27
【问题描述】:
我的 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。
【问题讨论】:
-
您是否收到任何错误消息? (例如,你应该有
return self.end - self.start) -
没有错误信息。它加载视图很好,除了它不显示模板函数调用的任何输出。
return self.end - self.start并没有什么不同。 -
你在调试方面做了什么? (例如,如果你的方法只是输出一个字符串呢?一个日期时间?)
-
我试图让函数返回一个字符串文字和其他一些东西——在渲染视图中没有产生任何输出。
-
也许您的
deal_instance没有开始和/或结束设置?在这种情况下,get_remaining_time可能会返回null。尝试调试它。在return之前在get_remaining_time方法中打印。也可以尝试在不使用days的情况下使用{{ deal_instance.get_remaining_time }},看看发生了什么。
标签: python django django-models django-templates