#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’, не могли бы вы решить эту проблему. Я пытаюсь, но не смог это исправить.