Я получаю эту ошибку Ошибка атрибута, и я проверил опечатки, но не нашел ни одной.
AttributeError at /api-auth/
Получена ошибка AttributeError при попытке получить значение для поля name на сериализаторе UserDetailsSerializer.
Поле сериализатора может быть названо неверно и не соответствовать какому-либо атрибуту или ключу экземпляра QuerySet.
Оригинальный текст исключения был: 'QuerySet' object has no attribute 'name'.
моя модель
from django.db import models
# Create your models here
class UserDetails(models.Model):
name = models.CharField(max_length=100)
password = models.CharField(max_length=100)
virtualId = models.TextField(null=True, blank=True)
photo = models.ImageField(upload_to='uploads/')
created = models.DateTimeField(auto_now_add=True)
updated = models.DateTimeField(auto_now=True)
def __str__(self):
return self.name
сериализаторы:
from rest_framework.serializers import ModelSerializer
from .models import UserDetails
class UserDetailsSerializer(ModelSerializer):
class Meta:
model = UserDetails
fields = '__all__'
просмотров :
from rest_framework.response import Response
from rest_framework.decorators import api_view
from .models import UserDetails
from .serializers import UserDetailsSerializer
# Create your views here.
@api_view(['GET'])
def getAllUserdata(request):
user = UserDetails.objects.all()
serializer = UserDetailsSerializer(user)
return Response(serializer.data)
Поскольку вы передаете querysets, вы должны установить many=True в вашем serializers.
Из official документации
Чтобы сериализовать набор или список объектов вместо одного экземпляра объекта, необходимо передать параметр many=True
.
api_view(['GET'])
def getAllUserdata(request):
user = UserDetails.objects.all()
serializer = UserDetailsSerializer(user, many=True)
return Response(serializer.data)