Python 最初的例外文本是:';QuerySet';对象没有属性';客户名称';
请使用序列化程序检查此错误。 我有两个模型客户和因素: models.py:Python 最初的例外文本是:';QuerySet';对象没有属性';客户名称';,python,django,serialization,Python,Django,Serialization,请使用序列化程序检查此错误。 我有两个模型客户和因素: models.py: class Customer(models.Model): customer_name = models.CharField(max_length=120 ,verbose_name='بنام') final_price = models.DecimalField(max_digits=20, decimal_places=0, default=0, verbose_name='مبلغ کل فاک
class Customer(models.Model):
customer_name = models.CharField(max_length=120 ,verbose_name='بنام')
final_price = models.DecimalField(max_digits=20, decimal_places=0, default=0, verbose_name='مبلغ کل فاکتور')
def __str__(self):
return f'{self.customer_name}'
class Factor(models.Model):
title = models.CharField(max_length=120 ,verbose_name='صورتحساب')
name = models.ForeignKey(Customer,on_delete=models.CASCADE,verbose_name='بنام' ,related_name='factor_set')
description = models.CharField(max_length=200 ,verbose_name='شرح کالا')
price = models.DecimalField(max_digits=20, decimal_places=0, default=0.0,verbose_name='قیمت واحد')
count =models.DecimalField(max_digits=20,decimal_places=0, default=1,verbose_name='تعداد')
date = models.DateTimeField(default=datetime.datetime.now,null=True,verbose_name='تاریخ')
def __str__(self):
return f'{self.name}'
serializer.py:
class FactorModelSerializer(serializers.ModelSerializer):
name = serializers.StringRelatedField(many=True)
class Meta:
model = Factor
fields = '__all__'
class CustomerModelSerializer(serializers.ModelSerializer):
factor_set=FactorModelSerializer(many=True)
class Meta:
model = Customer
fields = '__all__'
views.py:
class GetAllData__(APIView):
def get(self,request):
query = Customer.objects.all()
serializer=CustomerModelSerializer(query)
return Response(serializer.data ,status=status.HTTP_200_OK)
URL.py:
from factor.views import GetAllData,GetAllData__
urlpatterns = [
path('get-all-data--', GetAllData__.as_view()),
]
错误:
AttributeError位于/获取所有数据--
试图获取序列化程序CustomerModelSerializer
上的字段customer\u name
的值时,获取了AttributeError。
序列化程序字段的名称可能不正确,并且与QuerySet
实例上的任何属性或键都不匹配。
原始异常文本是:“QuerySet”对象没有属性“customer\u name”。您需要提供源代码作为“factor\u set”,因为序列化程序正在从何处搜索放置customer\u name的位置
class FactorModelSerializer(serializers.ModelSerializer):
name = serializers.StringRelatedField(many=True)
class Meta:
model = Factor
fields = '__all__'
class CustomerModelSerializer(serializers.ModelSerializer):
factor_set=FactorModelSerializer(many=True,source='factor_set')
class Meta:
model = Customer
fields = '__all__'
现在给出此错误:在序列化程序“CustomerModelSerializer”中的字段“ListSerializer”上指定
source='factor\u set'
是多余的,因为它与字段名相同。删除源
关键字参数。如果删除源会发生什么情况?错误:尝试获取序列化程序CustomerModelSerializer
上的字段因子集
的值时,获取AttributeError。序列化程序字段的名称可能不正确,并且与QuerySet
实例上的任何属性或键都不匹配。原始异常文本为:“QuerySet”对象没有属性“factor_set”。没有删除所有源变量ToolIsSerializer它在哪里?