django rest框架中的用户外键

django rest框架中的用户外键,django,django-rest-framework,Django,Django Rest Framework,我有一个用户模型和Accesskey模型。我想在accesskey表中保存正在访问API(access_key)的用户 型号.py class AccessKeys(models.Model): user = models.ForeignKey(CustomUser, on_delete=models.CASCADE, related_name='user',null=True) access_keys =models.CharField(max_length=400)

我有一个用户模型和Accesskey模型。我想在accesskey表中保存正在访问API(access_key)的用户

型号.py

class AccessKeys(models.Model):
    user = models.ForeignKey(CustomUser, on_delete=models.CASCADE, related_name='user',null=True)
    access_keys =models.CharField(max_length=400)


    def __str__(self):
        return self.access_keys
class AccessKeySerializer(serializers.ModelSerializer):
    user_id = serializers.RelatedField(source='CustomUser', read_only=True)
    access_keys = serializers.CharField(max_length=200,required=True)
    class Meta:
        model =AccessKeys
        fields = '__all__'
 
class AccessKeyView(generics.ListCreateAPIView):
    permission_classes = [IsAuthenticated, ]
    queryset = AccessKeys.objects.all()
    serializer_class = AccessKeySerializer

    def post(self,request):
        serializer = self.serializer_class(data=request.data)
        if serializer.is_valid():
            serializer.save()
            return Response(serializer.data, status=HTTP_201_CREATED)
        return Response(serializer.errors, status=HTTP_400_BAD_REQUEST)
序列化程序.py

class AccessKeys(models.Model):
    user = models.ForeignKey(CustomUser, on_delete=models.CASCADE, related_name='user',null=True)
    access_keys =models.CharField(max_length=400)


    def __str__(self):
        return self.access_keys
class AccessKeySerializer(serializers.ModelSerializer):
    user_id = serializers.RelatedField(source='CustomUser', read_only=True)
    access_keys = serializers.CharField(max_length=200,required=True)
    class Meta:
        model =AccessKeys
        fields = '__all__'
 
class AccessKeyView(generics.ListCreateAPIView):
    permission_classes = [IsAuthenticated, ]
    queryset = AccessKeys.objects.all()
    serializer_class = AccessKeySerializer

    def post(self,request):
        serializer = self.serializer_class(data=request.data)
        if serializer.is_valid():
            serializer.save()
            return Response(serializer.data, status=HTTP_201_CREATED)
        return Response(serializer.errors, status=HTTP_400_BAD_REQUEST)
视图.py

class AccessKeys(models.Model):
    user = models.ForeignKey(CustomUser, on_delete=models.CASCADE, related_name='user',null=True)
    access_keys =models.CharField(max_length=400)


    def __str__(self):
        return self.access_keys
class AccessKeySerializer(serializers.ModelSerializer):
    user_id = serializers.RelatedField(source='CustomUser', read_only=True)
    access_keys = serializers.CharField(max_length=200,required=True)
    class Meta:
        model =AccessKeys
        fields = '__all__'
 
class AccessKeyView(generics.ListCreateAPIView):
    permission_classes = [IsAuthenticated, ]
    queryset = AccessKeys.objects.all()
    serializer_class = AccessKeySerializer

    def post(self,request):
        serializer = self.serializer_class(data=request.data)
        if serializer.is_valid():
            serializer.save()
            return Response(serializer.data, status=HTTP_201_CREATED)
        return Response(serializer.errors, status=HTTP_400_BAD_REQUEST)

当我在模型中保存accesskey时,user\u id字段中有空值。

serializer.save(user=request.user)
非常感谢。它起作用了。@token Views.py`serializer=AccessKeySerializer(request.user)Key=serializer.data.get('access\u keys')`当我运行这个时,我得到了一个错误-AttributeError:'RelatedManager'对象没有属性'pk'。请解决这个问题。我正在努力,但无法修复它。