我正在使用Django 1.9和Django Rest Framework。
在Django中,有一个名为timesince()的方法,它在名为humanize的模板标签中用于名为'naturaltime'的方法中。
自然时间方法返回我想要的(一个相当格式化的日期)。 Timesince在应用程序中不可用。
无论如何,我在DRF的serializer.py文件中,我用以下方法导入了该方法:
from django.contrib.humanize.templatetags.humanize import naturaltime
由于方法顶部有注释 @register.filter ,模板标签文件顶部有 register = template.Library(),它是否会导致我不是从模板导入的问题?
答案 0 :(得分:0)
不,它不应该导致问题。
您可以将该函数用作常规python函数。 @register.filter
是一个装饰器,装饰该函数为filter
,而register = template.Library()
使其可用作模板标记。
但是,也可以使用普通python代码中的正确签名调用它。
所以你可以这样做:
from django.contrib.humanize.templatetags.humanize import naturaltime
from datetime import datetime as dt
my_human_time = naturaltime(dt.now())
print(my_human_time)
# 'now'