【发布时间】:2022-01-30 16:57:18
【问题描述】:
用户注册后,用户想要将数据发布到客户端模型(OnetoOne与用户模型的关系)。因此,我想在 serializer-class 中访问请求的 user 对象,以在与请求的用户关联的 Client 模型中创建一个新行。
models.py
class Client(models.Model):
user= models.OneToOneField(User, on_delete=models.CASCADE, null=False, blank=False)
sex = models.CharField(max_length = 6, blank=False, null=False)
location = models.CharField(max_length = 30, null = False, blank = False)
views.py
class ClientRegister(GenericAPIView):
def post(self, request):
user = request.user
serializer = ClientSerializer(data= request.data)
if serializer.is_valid():
serializer.save()
return Response(status= status.HTTP_201_CREATED)
else:
return Response(data= 'Invalid Form', status= status.HTTP_400_BAD_REQUEST)
serializers.py
class ClientSerializer(serializers.ModelSerializer):
class Meta:
model = Client
fields = ['sex', 'location']
def create(self, validated_data):
sex = validated_data.get('sex')
location = validated_data.get('location')
user = #------ Want requested user object here ------#
if user.is_client:
client = Client(user=user, sex=sex, location=location)
client.save()
return client
我已手动将用户 oject 添加到
serializer = CientSerializer(data=request.data)的 数据 中。 但是,它没有用。请告诉我如何从views.py传递它或如何在serializers.py中访问它。
【问题讨论】:
标签: python django django-rest-framework jwt one-to-one