django rest框架中的用户外键
我有一个用户模型和Accesskey模型。我想在accesskey表中保存正在访问API(access_key)的用户 型号.pydjango 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)
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'。请解决这个问题。我正在努力,但无法修复它。