【发布时间】:2022-01-18 02:31:11
【问题描述】:
我有我的模型证书和供应商,供应商与证书有多对多的关系
class Certificates(models.Model):
name = models.CharField(max_length=500, null=False)
description = models.CharField(max_length=500, null=False)
image_url = models.CharField(max_length=500, null=False)
def __str__(self):
return f'{self.name}'
class Suppliers(models.Model):
name = models.CharField(max_length=500, null=False)
location = models.CharField(max_length=500, null=False)
longitude = models.CharField(max_length=500, null=True)
latitude = models.CharField(max_length=500, null=True)
certificates = models.ManyToManyField(Certificates, null=True)
bio = RichTextField(blank=True, null=True)
environmental_info = RichTextField(blank=True, null=True)
social_info = RichTextField(blank=True, null=True)
governance_info = RichTextField(blank=True, null=True)
def __str__(self):
return f'{self.name}'
这是我的序列化器:
class CertificatesSerializer(serializers.ModelSerializer):
class Meta:
model = Certificates
fields = '__all__'
class SuppliersSerializer(serializers.ModelSerializer):
certificates = CertificatesSerializer()
class Meta:
model = Suppliers
fields = ('id', 'name', 'certificates')
这是我的观点
@api_view(['GET'])
def supplier_response_list(request):
suppliers_list = Suppliers.objects.all()
serializer = SuppliersSerializer(suppliers_list, many=True)
return Response(serializer.data)
我收到此错误:
AttributeError:尝试在序列化程序CertificatesSerializer 上获取字段description 的值时出现AttributeError。
序列化程序字段可能命名不正确,并且与 ManyRelatedManager 实例上的任何属性或键都不匹配。
原始异常文本是:“ManyRelatedManager”对象没有属性“描述”。
【问题讨论】:
标签: python-3.x django django-models serialization django-rest-framework