Получена ошибка AttributeError при попытке получить значение для поля `name` на сериализаторе. Объект 'QuerySet' не имеет атрибута 'name'
Сериализатор Djano Rest API не извлекает только набор данных, но и определения полей.
#Модель:
class Comp(models.Model):
name = models.CharField(max_length=100)
area = models.CharField(max_length=25,blank=True,null=True)
#Serializer:
from rest_framework import serializers
class CompSerializer(serializers.ModelSerializer):
class Meta:
model = Comp
fields = ('__all__')
#View:
@api_view(['GET'])
def getComp(request,pk=None):
co = Comp.objects.all()
serializer = CompSerializer(co)
print (serializer)
return JsonResponse(serializer.data,safe=False)
#Печатный вывод:
CompSerializer(<QuerySet [{'id': 1, 'name': 'My Company 1'}, {'id': 2, 'name': 'My Company 2'}]>): id = IntegerField(label='ID', read_only=True) name = CharField(max_length=100) area = CharField(allow_blank=True, allow_null=True, max_length=25, required=False)
#Ошибка вызова API в Webbrowser:
Значение исключения:
Получена ошибка AttributeError при попытке получить значение для поля name
на сериализаторе CompSerializer
.
Поле сериализатора может быть названо неправильно и не соответствовать какому-либо атрибуту или ключу экземпляра QuerySet
.
Оригинальный текст исключения был: 'QuerySet' object has no attribute 'name'