SerializerMethodField未显示-Django Rest Framework

问题描述

因此,我试图通过使用SerializerMethodField()向我的序列化器中添加一个新字段,但未显示。怎么会来?

models.py:

class Post(models.Model):
    author = models.ForeignKey(User,on_delete=models.CASCADE) ##
    content = models.TextField(max_length=400,blank=False)
    date_posted = models.DateTimeField(auto_Now_add=True)

    @property
    def username(self):
        return self.author.username

    def __int__(self):
        return self.id
    

serializers.py:

class PostSerializer(serializers.ModelSerializer):
    username = serializers.SerializerMethodField()

    class Meta:
        model = Post
        fields = '__all__'
    
    def get_username(self,obj):
       return obj.username
       #return obj.author.username dooesnt work either

view.py我要去哪里查看帖子的详细信息;

@api_view(['GET'])
def postDetail(request,pk):
    post = Post.objects.get(id=pk)
    serializer = PostSerializer(post,many=False)
    return Response(serializer.data)

这就是结果,用户名字段丢失:

{
    "id": 2,"content": "6","date_posted": "08/12/2020 18:33:55","author": 1
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)