Как изменить 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')