将请求用户的用户名从 Django Rest 框架中的视图集传递给序列化程序



我想将登录用户的用户名从ListCreateAPIView传递到ModelSerializer,以使用与客户端模型相同的PrimaryKey对象作为默认值,但我不明白如何正确地做到这一点。

在views.py:


class CartAPIList(generics.ListCreateAPIView):
    queryset = Clientcarts.objects.all()
    serializer_class = CartSerializer
    permission_classes = (IsAuthenticatedOrReadOnly, )
在serializers.py:

class CartSerializer(serializers.ModelSerializer):
    client_id = serializers.HiddenField(default=Clients.objects.get(pk="username"))
    class Meta:
        model = Clientcarts
        fields = '__all__'

你们能帮帮我吗?

context = {'user': request.user}作为参数传递到views.py文件的序列化器类中

则可以在serializers.py文件中使用CartSerializer中的上下文值:

user = serializers.SerializerMethodField()
def get_user(self, obj):
    user = self.context.get('user')
    return user

最新更新