如何返回用户名而不是他的 ID 休息框架

1 django serialization django-rest-framework

工作正常,但只获取 ID 号而不是名称

视图.py

class createtweet(CreateAPIView):
    queryset = Tweets.objects.all()
    serializer_class = TweetsSerializer

    def perform_create(self, serializer):
        serializer.save(user=self.request.user)
Run Code Online (Sandbox Code Playgroud)

序列化器.py

class TweetsSerializer(serializers.ModelSerializer):
    class Meta:
        model = Tweets
        fields = '__all__'
Run Code Online (Sandbox Code Playgroud)

请给我一种返回用户名而不是 ID 的方法

JPG*_*JPG 5

您可以借助source参数显式指定字段:

class TweetsSerializer(serializers.ModelSerializer):
    user = serializers.CharField(source="user.username", read_only=True)

    class Meta:
        model = Tweets
        fields = '__all__'
Run Code Online (Sandbox Code Playgroud)