장고 1.4.2 및 Tastypie 0.9.11을 사용하여 API 서버를 작성하고 있습니다.tastypie 시간 형식을 변경하는 방법
모든 datetime 출력의 경우 기본 iso 8601 형식을 사용합니다 (예 : "2012-11-20T02 : 48 : 19 + 00 : 00"). 하지만 "2012-11-20T02 : 48 : 19Z"형식을 원합니다. 각 datetime 필드를 사용자 정의하지 않고 쉽게 수행하는 방법은 무엇입니까?
장고 1.4.2 및 Tastypie 0.9.11을 사용하여 API 서버를 작성하고 있습니다.tastypie 시간 형식을 변경하는 방법
모든 datetime 출력의 경우 기본 iso 8601 형식을 사용합니다 (예 : "2012-11-20T02 : 48 : 19 + 00 : 00"). 하지만 "2012-11-20T02 : 48 : 19Z"형식을 원합니다. 각 datetime 필드를 사용자 정의하지 않고 쉽게 수행하는 방법은 무엇입니까?
날짜 서식 지정은 템플릿에서 수행하는 것이 가장 좋습니다. 그러나 Tastypie를 사용하면 dehydrate cycle을 사용하여 API에서 반환 한 입력란을 추가하거나 수정할 수 있습니다. 예를 들어 사용자가 HTTP 요청을하는 경우
# models.py
class MyModel(models.Model):
iso8601_date = models.DateTimeField()
class Meta:
verbose_name = 'my_model'
# api.py
class MyResource(ModelResource):
class Meta:
queryset = MyModel.objects.all()
def dehydrate(self, bundle):
# Your original field: bundle.data['iso8601_date']
# Newly formatted field.
bundle.data['new_date_format'] = '2012-11-20T02:48:19Z'
return bundle
지금, 당신은 "new_date_format"에 대한 새로운 라인을 볼 수 있습니다.
이 페이지에 TASTYPIE_DATETIME_FORMATTING이라는 구성이 있습니다. http://django-tastypie.readthedocs.org/en/latest/serialization.html. 그러나 이것은 제한된 옵션을 제공합니다 (iso-8601 & rfc-2822). http://django-tastypie.readthedocs.org/en/latest/serialization.html
나는이 솔루션을 알고 -
은 당신이 할 수있는 것은
이 여기에 설명 된 것처럼 리소스에 대한 사용자 지정 시리얼 라이저를 사용합니다. 하지만 글로벌 구성 솔루션이 있는지 알고 싶었습니다. 그러나 마침내 나는 이것을 사용했다. ;) –