Почему метод get не может использовать запрос рестфреймворка django?
У меня есть следующий фрагмент кода
class ListAccTokenView(ListAPIView):
serializer_class = TokenSerializers
def get_queryset(self):
org_id = self.kwargs.get('id')
entity_id = self.kwargs.get('comp')
queryset = ErpLinkToken.objects.filter(id=id, comp=comp)
return queryset
class MeCompInfo(APIView):
@staticmethod
def get_company_info(request):
get_token = ListAccTokenView.as_view()
queryset = get_token(Request(Request(request=request)).data
token = queryset[0]['token'] if queryset else None
account_token_client = create_merge_client(token)
Я получаю следующую ошибку
AssertionError at /api/comp
The `request` argument must be an instance of `django.http.HttpRequest`, not `rest_framework.request.Request`.
Я пробовал импортировать from django.http import HttpRequest
и преобразовать его в экземпляр rest_framework, как показано ниже, но это не помогло
class MeCompInfo(APIView):
@staticmethod
def get_comp_info(request):
django_request = HttpRequest()
django_request.method = request.method
django_request.GET = request.query_params
get_token = ListAccTokenView.as_view()
queryset = get_token(Request(request=django_request)).data
ac_token = queryset[0]['token'] if queryset else None
account_token_client = create_merge_client(ac_tok)
def get(self, request, *args, **kwargs):
api_log(msg="Processing GET request...")
organization_data = self.get_comp_info(request)
Как я могу это исправить?
У вас опечатка в коде.
Вы добавили comp=comp
, однако comp
не определен в текущей области видимости.
Обновленный код:
entity_id = self.kwargs.get('comp')
queryset = ErpLinkToken.objects.filter(id=id, comp=entity_id)