Как фильтровать объекты по нескольким значениям в Python Django?

Я пытаюсь фильтровать объекты в django по набору запросов, а не по одному значению. Пожалуйста, посмотрите мой код ниже

@api_view(['GET'])
def getOffersReceived(request, name):
    owner = Profile.objects.get(name=name)
    dogs = Dog.objects.filter(owner=owner)
    print(dogs)

    sittings = Sitting.objects.filter(dog=dogs)

    return Response()

Строка print(dogs) показывает набор запросов из 4 значений. Следующим шагом я пытаюсь получить все сидения, у которых значение dog совпадает с любым из элементов в наборе запроса.

Я получаю следующую ошибку:

ValueError: Значение QuerySet для точного поиска должно быть ограничено одним результатом с помощью нарезки.

любая помощь будет очень признательна.

Спасибо

Вы можете фильтровать непосредственно с помощью:

@api_view(['GET'])
def getOffersReceived(request, name):
    sittings = Sitting.objects.filter(dog__owner__name=name)
    # …
    return Response()

Для фильтрации набора запросов следует использовать in: https://docs.djangoproject.com/en/3.2/ref/models/querysets/#in

sittings = Sitting.objects.filter(dog__in=dogs)
Вернуться на верх