Объект Django 'QuerySet' не имеет атрибута

С этой моделью:

class Batch(models.Model):
    product = models.CharField(max_length=200)
    created = models.DateTimeField(auto_now_add=True)
    stock = models.IntegerField()
    expiration = models.DateField()

Этот вид:

@api_view(['GET'])
def getByProduct(request, product_name, format=None):

    try:
        batches = Batch.objects.filter(product=product_name)
    except Batch.DoesNotExist:
        return Response(status=status.HTTP_404_NOT_FOUND)
    
    serializer = BatchSerializer(batches)
    return Response(serializer.data, status=status.HTTP_200_OK)

И этот URL:

path('get_by_product/<str:product_name>/', views.getByProduct),

При запуске этой программы я получаю следующую ошибку:

http://127.0.0.1:8000/get_by_product/Potatoes/


Got AttributeError when attempting to get a value for field `product` on serializer `BatchSerializer`.
The serializer field might be named incorrectly and not match any attribute or key on the `QuerySet` instance.
Original exception text was: 'QuerySet' object has no attribute 'product'.

Однако если я принудительно ввожу другую ошибку, то получаю следующее:

Cannot resolve keyword 'many' into field. Choices are: created, expiration, history, id, product, stock

Я не могу .get(), так как этот запрос ожидает множество партий с одним и тем же свойством "product".

Редактировать: Это происходит с любым полем, например: batches = Batch.objects.filter(pk=1) Все равно возвращается та же ошибка, говорящая, что product не соответствует какому-либо атрибуту, хотя он нигде не используется. Может быть, что-то кэшируется? У меня нет незавершенных makemigrations/migrate

Решено! Мне не хватало много=True в сериализаторе:

serializer = BatchSerializer(batches, many=True)
Вернуться на верх