Django rest framework ';QuerySet';对象没有属性';电话';模型内序列化程序django rest

Django rest framework ';QuerySet';对象没有属性';电话';模型内序列化程序django rest,django-rest-framework,django-serializer,Django Rest Framework,Django Serializer,我正在使用Django rest Api构建一个项目。我有一个名为DriverProfile的模型,现在我必须添加一个DriverProfile,但我得到以下错误: 在尝试获取字段电话的值时获取AttributeError 在序列化程序DriverProfileCreateSerializer上。序列化程序字段的名称可能不正确,并且与QuerySet实例上的任何属性或键都不匹配。原始异常文本是:“QuerySet”对象没有属性“phone” 我使用过APIView和modelSerializer

我正在使用Django rest Api构建一个项目。我有一个名为DriverProfile的模型,现在我必须添加一个DriverProfile,但我得到以下错误:

在尝试获取字段
电话的值时获取AttributeError
在序列化程序
DriverProfileCreateSerializer
上。序列化程序字段的名称可能不正确,并且与
QuerySet
实例上的任何属性或键都不匹配。原始异常文本是:“QuerySet”对象没有属性“phone”

我使用过APIView和modelSerializer,但我不知道它为什么会出现,而电话字段出现在DriverProfile中。 重要信息:当我从泛型视图而不是APIView中执行此操作时,它会工作,但当我使用模型序列化程序和API视图时,它会抛出错误。我猜错误出现在model serializer中的create()中,我使用的是driverprofile=driverprofile.objects.all(),我无法排序

型号。py:

类驱动程序(models.Model):
User=models.ForeignKey(用户,on_delete=models.CASCADE)
objects=models.Manager()
类驱动程序配置文件(models.Model):
驱动程序=模型.OneToOneField(驱动程序,on_delete=模型.CASCADE)
驱动器名称=models.CharField(最大长度=20,空白=True)
phone=models.CharField(最大长度=12)
驱动程序cnic=型号.CharField(最大长度=13)
视图.py

class CreateDriverProfile(APIView):
def get(自我,请求):
返回响应([DriverProfileCreateSerializer(driver).DriverProfile.objects.all()中驱动程序的数据])
def post(自我,请求):
有效负载=request.data
serializer=DriverProfileCreateSerializer(数据=有效负载)
如果序列化程序.u有效():
serializer.save()
返回响应(serializer.data,status=status.HTTP\u 201\u已创建)
返回响应(serializer.errors,status=status.HTTP\u 400\u BAD\u请求)
Serializer.py:

class DriverProfileCreateSerializer(serializers.ModelSerializer):#创建驱动程序配置文件
类元:
模型=驱动器配置文件
字段='\uuuu所有\uuuu'
def创建(自我验证的_数据):
driverprofile=driverprofile.objects.all()
返回驱动器配置文件
def更新(自身、实例、已验证的_数据):
对于已验证的_数据项()中的k,v:
setattr(实例,k,v)
save()实例
返回实例
  • 按以下方式更改驱动器ProfileCreateSerializer:
class DriverProfileCreateSerializer(serializers.ModelSerializer):#创建驱动程序配置文件
类元:
模型=驱动器配置文件
字段='\uuuu所有\uuuu'
def创建(自我验证的_数据):
driverprofile=driverprofile.objects.create(**validated#u data)#在这里!
返回驱动器配置文件
def更新(自身、实例、已验证的_数据):
对于已验证的_数据项()中的k,v:
setattr(实例,k,v)
save()实例
返回实例

我尝试过这个方法,但出现了一个错误“all()得到了一个意外的关键字参数'drive\u name',在添加**validated\u数据后,您能告诉我们您的数据是什么样子吗?可能您发送的数据键与python模型类字段不匹配@MuhammadNabeelOk得到了我添加的。全部(**已验证的数据)而不是。创建(**已验证的数据)。谢谢