Получение объекта 'ModelBase' не является итерируемым
Я создаю следующее представление для получения списка фруктов и получаю сообщение об ошибке такого типа. Я не знаю, что я здесь упустил:
TypeError: 'ModelBase' object is not iterable
views.py
class FruitsList(APIView):
# To list fruits
def get(self, request):
fruits = Fruit.objects.all()
serializer = FruitSerializer(Fruit, many = True)
return Response(serializer.data)
serializers.py:
class FruitSerializer(serializers.ModelSerializer):
class Meta:
model = Fruit
fields = [
'id',
'name',
'customers',
]
models.py:
class Fruit(models.Model):
"""represents customer fruits"""
name = models.CharField(max_length = 100)
customers = models.ManyToManyField(Customer)
def __str__(self):
return self.name
Ваша помощь очень ценится!
Вы передаете в сериализатор класс Fruit
, тогда как сериализатор ожидает получить список объектов этого класса или его кверисет.
Поэтому вам нужно изменить ваши представления на:
class FruitsList(APIView):
# To list fruits
def get(self, request):
fruits = Fruit.objects.all()
# This is where the error is, pass in `fruits` instead, not the class
serializer = FruitSerializer(fruits, many=True)
return Response(serializer.data)