【发布时间】:2020-07-24 11:57:37
【问题描述】:
我正在学习 Django,但遇到了这个错误,我找不到解决方案。
这是我的模型
class Retailer(models.Model):
id = models.AutoField(primary_key=True)
name = models.CharField(max_length=255)
website = models.CharField(max_length=255)
def __str__(self):
return str(self.id)
class Product(models.Model):
id = models.AutoField(primary_key=True)
price = models.IntegerField(default=None, null=True)
name = models.CharField(max_length=255)
retailer = models.ForeignKey(Retailer,on_delete=models.CASCADE,related_name='retailer_info')
is_active = models.BooleanField(default=False)
def __str__(self):
return str(self.id)
这是我的序列化程序
class ProductSerializer(serializers.ModelSerializer):
class Meta:
model = Product
fields = '__all__'
class RetailerSerializer(serializers.ModelSerializer):
products = ProductSerializer(many=True, read_only=True)
class Meta:
model = Retailer
fields = ['name', 'website', 'products']
这是我的观点
class RetailerList(APIView):
def get(self, request):
retailer = Retailer.objects.all()
serializer = RetailerSerializer(retailer)
return Response(serializer.data)
这是我的网址
path('retailer', views.RetailerList.as_view()),
但是当我在 127.0.0.1:8000/retailer 上提交获取请求时,我收到此错误:
/product 处的 AttributeError 尝试在序列化程序
RetailerSerializer上获取字段name的值时出现 AttributeError。 序列化程序字段可能命名不正确,并且与QuerySet实例上的任何属性或键都不匹配。 原始异常文本是:“QuerySet”对象没有属性“名称”。 有什么问题?
【问题讨论】:
标签: django django-rest-framework