Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions rest_flex_fields/serializers.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,9 @@
import importlib
from typing import List, Optional, Tuple

from django.http.request import HttpRequest
from rest_framework import serializers
from rest_framework.request import Request

from rest_flex_fields import (
EXPAND_PARAM,
Expand Down Expand Up @@ -278,6 +280,9 @@ def _get_query_param_value(self, field: str) -> List[str]:
if not hasattr(self, "context") or not self.context.get("request"):
return []

if isinstance(self.context['request'], HttpRequest):
self.context["request"] = Request(self.context["request"])

values = self.context["request"].query_params.getlist(field)

if not values:
Expand Down
9 changes: 9 additions & 0 deletions rest_flex_fields/utils.py
Original file line number Diff line number Diff line change
@@ -1,12 +1,18 @@
from collections.abc import Iterable

from django.http.request import HttpRequest
from rest_framework.request import Request

from rest_flex_fields import EXPAND_PARAM, FIELDS_PARAM, OMIT_PARAM, WILDCARD_VALUES


def is_expanded(request, field: str) -> bool:
""" Examines request object to return boolean of whether
passed field is expanded.
"""
if isinstance(request, HttpRequest):
request = Request(request)

expand_value = request.query_params.get(EXPAND_PARAM)
expand_fields = []

Expand All @@ -23,6 +29,9 @@ def is_included(request, field: str) -> bool:
set, and it is not among them, or because `omit` is set and
it is among them.
"""
if isinstance(request, HttpRequest):
request = Request(request)

sparse_value = request.query_params.get(FIELDS_PARAM)
omit_value = request.query_params.get(OMIT_PARAM)
sparse_fields, omit_fields = [], []
Expand Down