Che*_*eng 1 django django-rest-framework
我的模型包含一个日期时间字段,我想在请求时将其转换为时间戳。这是get响应的处理程序:
def get(self, request, pk):
journal = Journal.objects.get(pk=pk)
serializer = LogSerializer(journal)
return Response(serializer.data)
Run Code Online (Sandbox Code Playgroud)
这是回应:
{
...blah...
"created": "2015-12-02T08:57:16.881528Z",
}
Run Code Online (Sandbox Code Playgroud)
我尝试这样做来获取unix时间戳:
from django.utils.dateformat import format
def get(self, request, pk):
journal = Journal.objects.get(pk=pk)
journal.created = format(journal.created, 'U') #error, because the LogSerializer expects a datetime object instead of a string
serializer = LogSerializer(journal)
return Response(serializer.data)
Run Code Online (Sandbox Code Playgroud)
这是我的序列化器和模型:
class LogSerializer(ModelSerializer):
class Meta:
model = Journal
class Journal(Model):
created = models.DateTimeField(auto_now_add=True)
Run Code Online (Sandbox Code Playgroud)
有没有办法告诉 JSONRender 执行以下操作:
if fieldName == 'created':
data['created'] = convert_to_timestamp(data['created'])
Run Code Online (Sandbox Code Playgroud)
或者我应该修改字符串化数据:
content = JSONRender(serializer.data)
... find the position of the time string in content and replace it with the timestamp ...
Run Code Online (Sandbox Code Playgroud)
小智 5
您可以使用SerializerMethodField它来实现相同的目的。
response_created_date = serializers.SerializerMethodField('get_created_date')
def get_created_date(self, obj):
return convert_to_timestamp(obj.created)
Run Code Online (Sandbox Code Playgroud)
点击这里查看更多信息。
| 归档时间: |
|
| 查看次数: |
2925 次 |
| 最近记录: |