我使用的是Django Rest Framework,当有效载荷来自发布请求时,我有一个company_status的布尔字段,该字段为true,但是当用户保存它为False时,我无法得到问题所在:>
views.py
class CreateUser(APIView):
def get(self,request):
return Response([UserSerializer(dat).data for dat in User.objects.all()])
def post(self,request):
payload=request.data
serializer = UserSerializer(data=payload)
print(payload) # here it shows company_status True
if serializer.is_valid():
instance = serializer.save()
instance.set_password(instance.password)
instance.save()
return Response(serializer.data,status=status.HTTP_201_CREATED)
return Response(serializer.errors,status=status.HTTP_400_BAD_REQUEST)
serializers.py
class UserSerializer(serializers.ModelSerializer):
class Meta:
model = User
fields = ['id','username','user_image','designation','company_status','age','gender']
def create(self,validated_data):
user = User.objects.create(**validated_data)
return user
def update(self,instance,validated_data):
for k,v in validated_data.items():
setattr(instance,k,v)
instance.save()
return instance
models.py
class User(AbstractBaseUser,PermissionsMixin):
# is_admin=models.BooleanField(default=False)
is_staff = models.BooleanField(default=False)
first_name = models.CharField(max_length=30,blank=True)
last_name = models.CharField(max_length=30,blank=True)
date_joined = models.DateTimeField(null=True,blank=True)
user_image=models.ImageField(upload_to=user_main_image_directory_path,null=True,blank=True)
username = models.CharField(
max_length=150,unique=True,)
is_active = models.BooleanField(default=True)
phonenumber=models.CharField(max_length=13,default="null")
faceid=HashidField
is_booker=models.BooleanField(default=False)
designation=models.CharField(max_length=30,null=True)
company_status=models.BooleanField(null=True,blank=True) # this is the field
object = UserManager()
username_FIELD = 'username'
REQUIRED_FIELDS = []
age=models.IntegerField(null=True)
gender=models.CharField(max_length=10,blank=True)
回复
Response:
"id": 1,"username": "nabeel","user_image": "/media/1/opencv_frame_0.jpg","designation": "bscs","company_status": false,"age": 23,"gender": "male"
}
请求有效载荷
Request payload:
payload={
age:25
company_statu:true
designation:bscs
gender:male
password:manofsteel#2
username:xyz
}
无法弄清为什么总是在company_status中保存False,我已经打印了有效载荷来自发布请求,并且显示True,但是当序列化程序保存时,它显示false