我正在尝试用Python 2.7和Django 1.5创建一个简单的天气JSON API。
我的WeatherData模型如下所示:
class WeatherData(models.Model):
created_at = models.DateTimeField(auto_now_add=True)
temp_f = models.DecimalField()
在我的观看中,我想将Django存储的created_at
日期时间对象转换为UTC秒。(我知道会出现时区问题。)
我已经知道如何将datetime对象(名为MYTIME
)转换为秒:
import time
time.mktime(MYTIME.timetuple())
但是,当我定义queryset = WeatherData.objects.all()
时,我无法找到一种方法将这些日期时间对象即时转换为UTC秒,同时保持queryset对象。 简而言之,我想在模板中渲染之前修改视图中返回的查询集。
我是使用Django和MySQL的新手,但我想有办法做到这一点。
注意:我正在使用TastyPie,因此我无法直接访问模板文件。我在ModelResource类中指定了queryset字段:
class WeatherResource(ModelResource):
class Meta:
queryset = WeatherData.objects.all()
fields = ['created_at' 'temp_f']
提前感谢您的帮助!
答案 0 :(得分:4)
您不必修改它,只需向执行此操作的WeatherData
类添加方法,并在模板中为查询集中的每个对象调用方法:
import time
class WeatherData(models.Model):
created_at = models.DateTimeField(auto_now_add=True)
temp_f = models.DecimalField()
def created_at_utc(self):
# whatever logic you need to do the conversion
return time.mktime(self.created_at.timetuple())
并在您的模板中执行此操作:
{% for data in deatherdata %}
data.created_at_utc
{% endfor %}
我希望它有所帮助!