Как изменить json поля в Django Rest Framework

Есть такая модель:

class Post(models.Model):
    poster = models.ForeignKey('User', on_delete=models.CASCADE, related_name='posts')
    body = models.TextField()
    timestamp = models.DateTimeField(auto_now_add=True)
    likers = models.ManyToManyField('User', blank=True, null=True, related_name='liked_posts')
    savers = models.ManyToManyField('User', blank=True, null=True, related_name='saved_posts')
    likes = models.IntegerField(default=0)

И его сериализатор Rest:

class PostSerializer(serializers.ModelSerializer):
    class Meta:
        model = Post
        fields = '__all__'

В модели есть поле с именем timestamp. Я использовал пользовательскую функцию сериализатора внутри класса модели, чтобы она возвращала временную метку в виде: 'timestamp': self.timestamp.strftime('%b %d %Y, %I:%M %p'). Как я могу сделать это с помощью Rest?

class PostSerializer(serializers.ModelSerializer):
    str_timestamp = serializers.SerializerMethodField(
        method_name="get_str_timestamp"
    )    

    class Meta:
        model = Post
        fields = '__all__'

    def get_str_timestamp(self, obj: Post):
        return obj.timestamp.strftime('%b %d %Y, %I:%M %p')
Вернуться на верх