python 将请求用户的用户名从Django Rest Framework中的Viewset传递给Serializer

bwitn5fc  于 2023-03-21  发布在  Python
关注(0)|答案(1)|浏览(81)

我想通过登录用户的用户名从ListCreateAPIView到ModelSerializer使用相同的PrimaryKey从客户端模型作为默认对象,但我不明白如何正确地做到这一点。
在www.example.com中views.py:

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

在www.example.com中serializers.py:

class CartSerializer(serializers.ModelSerializer):
    client_id = serializers.HiddenField(default=Clients.objects.get(pk="username"))

    class Meta:
        model = Clientcarts
        fields = '__all__'

你们能帮帮我吗?

lymnna71

lymnna711#

context = {'user': request.user}作为参数传入views.py文件中的序列化程序类。
然后,您可以在serializers.py文件中使用CartSerializer中的上下文值:

user = serializers.SerializerMethodField()

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

相关问题