我正在使用Django 1.4.2和Tastypie 0.9.11编写API服务器.
对于所有日期时间输出,我使用默认的iso 8601格式,例如:"2012-11-20T02:48:19 + 00:00".但我希望获得"2012-11-20T02:48:19Z"格式.如何在不自定义每个日期时间字段的情况下轻松完成?
小智 9
此页面中有一个名为TASTYPIE_DATETIME_FORMATTING的配置http://django-tastypie.readthedocs.org/en/latest/serialization.html.但是,这为您提供了有限的选择(iso-8601和rfc-2822).
您可以做的是为您的资源使用自定义Serializer
# models.py
class MyModel(models.Model):
class Meta:
verbose_name = 'my_model'
# api.py
from custom_serializer import MySerializer
class MyResource(ModelResource):
class Meta:
queryset = MyModel.objects.all()
serializer = MySerializer()
#custom_serializer.py
from tastypie.serializers import Serializer
class MySerializer(Serializer):
def format_datetime(self, data):
return data.strftime("%Y-%m-%dT%H:%M:%SZ")
Run Code Online (Sandbox Code Playgroud)
这里有详细介绍 - http://django-tastypie.readthedocs.org/en/latest/serialization.html