【发布时间】:2011-02-14 23:16:39
【问题描述】:
当我将 QuerySet 数据返回到模板时,我需要修改它。
例如,model.objects.all() 返回一个日期(带有其他字段),但我还想返回自该日期过去以来的天数。这样在模板中,我可以说“您上次登录是 4 天前”。
最好的方法是什么?
【问题讨论】:
标签: django templates django-templates django-queryset
当我将 QuerySet 数据返回到模板时,我需要修改它。
例如,model.objects.all() 返回一个日期(带有其他字段),但我还想返回自该日期过去以来的天数。这样在模板中,我可以说“您上次登录是 4 天前”。
最好的方法是什么?
【问题讨论】:
标签: django templates django-templates django-queryset
有一个内置的template filter 可以做到这一点:
{{ myobject.datefield|timesince }}
但一般对于这种事情,最简单的方法可能是在模型上定义一个自定义方法:
def mymethod(self):
today = datetime.datetime.today()
since = today - self.datefield # since is a datetime.timedelta object
return since.days
【讨论】: