Python 序列化和反序列化之前的Alter django rest framework字段

Python 序列化和反序列化之前的Alter django rest framework字段,python,json,django,serialization,Python,Json,Django,Serialization,我想做的是,在序列化和非序列化的过程中,将unix_epoch转换为python dateTime,反之亦然。到目前为止我所做的: 我的模型轨道: class Track(models.Model): uuid = models.UUIDField(null=True) distance = models.FloatField(null=True) dateCreated = models.DateTimeField(null=True) dateClosed =

我想做的是,在序列化和非序列化的过程中,将unix_epoch转换为python dateTime,反之亦然。到目前为止我所做的:

我的模型轨道:

class Track(models.Model):
    uuid = models.UUIDField(null=True)
    distance = models.FloatField(null=True)
    dateCreated = models.DateTimeField(null=True)
    dateClosed = models.DateTimeField(null=True)


    def date_created_to_epoch(self):
        return time.mktime(self.dateCreated.timetuple())

    def date_closed_to_epoch(self):
        return time.mktime(self.dateClosed.timetuple())
我的模型点:

class Point(models.Model):

    uuid = models.UUIDField(null=True)
    track_uuid = models.UUIDField(null=True)
    dateCreated = models.DateTimeField(null=True);
    track = models.ForeignKey(Track, related_name='points')

    def date_created_to_epoch(self):
        return time.mktime(self.dateCreated.timetuple())
我的序列化程序:

class PointSerializer(serializers.ModelSerializer):
    dateCreated = serializers.ReadOnlyField(source='date_created_to_epoch')

    class Meta:
        model = Point
        fields = ('uuid', 'lat', 'lng')


class TrackSerializer(serializers.ModelSerializer):
    points = PointSerializer(many=True)
    dateCreated = serializers.ReadOnlyField(source='date_created_to_epoch')
    dateClosed = serializers.ReadOnlyField(source='date_closed_to_epoch')

    class Meta:
        model = Track
        fields = ('uuid', 'distance', 'dateCreated', 'dateClosed', 'comments', 'type', 'status', 'points')

    def create(self, validated_data):
        points_data = validated_data.pop('points')
        track = Track.objects.create(**validated_data)
        for point_data in points_data:
            Point.objects.create(track=track, **point_data)
        return track

如您所见,我使用def date_created_to_epoch(self):方法实现了从数据库到json的转换。我需要的是实现json(unix时间)到数据库(日期时间)的转换。我使用嵌套模型。我认为我的方法是错误的,有一种方法可以让它变得更好。请帮忙

我会使用Django Rest框架,而不是原始的
.ReadOnlyField
。通过将
read_only=True
传递给字段的构造函数,可以使任何字段成为只读字段