我有类似
的东西class PostSerializer(serializers.HyperlinkedModelSerializer):
tz = serializers.Field()
class Meta:
model = Post
fields = ('id', 'url', 'user', 'date', 'show', 'body', 'role', 'image', 'images', 'lat', 'lng', 'tz')
read_only_fields = ('id', 'user', 'created', 'meta', 'date_utc')
我的最终目标是将时区传入tz字段,然后将日期设置为具有与之关联的时区的日期时间。
这可能吗?
答案 0 :(得分:1)
是的,这是可能的。
Django supports timezone aware dates但most of the backends store datetimes
in UTC。如果您正在使用其中一个,那么您可以按照建议存储时区。然后,您可以将此映射回DRF' SerializerMethodField。
也许是这样的:
class PostSerializer(serializers.HyperlinkedModelSerializer):
...
local_datetime = serializers.SerializerMethodField('get_local_datetime')
...
def get_local_datetime(self,obj):
return pytz.timezone(obj.tz).localize(obj.datetime)
我希望有所帮助。