внешний ключ пользователя в django rest framework

#django #django-rest-framework

#django #django-rest-framework

Вопрос:

У меня есть одна модель пользователя и модель ключа доступа. Я хочу сохранить пользователя, который обращается к API (access_key) в таблице accesskey.

models.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
  

serializers.py

 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__'
 
  

views.py

 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)
  

когда я сохраняю ключ доступа в модели, в поле user_id есть значение null.

Комментарии:

1. serializer.save(user=request.user)

2. @token Views.py ` сериализатор = AccessKeySerializer(запрос.user) Key = serializer.data.get(‘access_keys’)` когда я запускаю это, я получаю ошибку- AttributeError: объект ‘RelatedManager’ не имеет атрибута ‘pk’, не могли бы вы решить эту проблему. Я пытаюсь, но не смог это исправить.