Почему запрос фильтра django не принимает переданные значения?

У меня есть программа, которая должна выполнить objects.filter запрос на два столбца и на основе этого получить данные из 3-го столбца.

class API(GenericAPIView, ListModelMixin, CreateModelMixin):
    serializer_class = [DummySerializer, ATSerializers]

    def __init__(self,*args, **kwargs):
        super().__init__(*args, **kwargs)
        self.org = None
        self.ent = None

    def post(self, request, *args, **kwargs):
        org = request.data.get("org")
        ent = request.data.get("ent")

        self.org = org
        self.ent = ent

        if self.org is None or self.ent is None:

            return Response("Both fields are required to fetch token..", status=status.HTTP_400_BAD_REQUEST)

        queryset = self.get_queryset()
        print("[QUERY SET] :", queryset)

        if not queryset:
            return Response("No matching records found.", status=status.HTTP_404_NOT_FOUND)

        lnk_token = list(queryset.values_list('link_token', flat=True))
        return Response({"lnk_tkn": lnk_token}, status=status.HTTP_200_OK)

    def get_queryset(self):
        org = self.org
        ent = self.ent
        print("this is get_queryset bloc")

        if org is None or ent is None:
            return tbl.objects.none()
        else:
            print(self.org, self.ent)
            filter_token = tbl.objects.filter(org=org, ent=ent)
            print(filter_token)
            lnk_token = filter_token.values_list('tkn', flat=True)

        return lnk_token

    def list(self, request, *args, **kwargs):
        queryset = self.get_queryset()
        if not queryset:
            return Response(f"Both IDs are the required fields.....")
        return Response(
            {
                "token": queryset
            }
        )
  • Я получаю значения org и ent из тела запроса в методе post и передаю их в метод get_queryset() GET.

  • Затем значения должны быть переданы в

    filter_token = tbl.objects.filter(org=org, ent=ent)

Именно в этот момент код дает сбой.

  • Через операторы печати для org и ent в различных местах как в методе post, так и в методе get_queryset() я вижу, что значение приходит, но оно не передается в filter_token. Я не уверен, почему. Я получаю следующую ошибку в методе post, где я вызвал get_queryset().

    "Не найдено совпадающих записей." в моем postman. Ниже приведен print(filter_token) вывод.

    [QUERY SET] :

  • В методе post есть POST-функции, которые я пока убрал. Потому что я хотел протестировать функциональность get_queryset(), прежде чем восстанавливать там POST-функции.

  • Цель создания такой структуры вызова функции заключается в том, чтобы при вызове метода POST в теле запроса POST API передавались только эти org и ent значения. Следовательно, я хотел выполнить функцию get_queryset() непосредственно в POST для дальнейшей работы с данными

    .
Вернуться на верх