Coverage for website/thaliawebsite/api/v2/fields/current_object.py: 56.25%
14 statements
« prev ^ index » next coverage.py v7.6.7, created at 2025-08-14 10:31 +0000
« prev ^ index » next coverage.py v7.6.7, created at 2025-08-14 10:31 +0000
1class CurrentRequestObjectDefault:
2 """A default class that can be used to represent an object based on the request arguments.
4 In order to use this, the 'request' must have been provided as part
5 of the context dictionary when instantiating the serializer.
6 """
8 requires_context = True
10 def __init__(self, model, url_field, model_field="pk") -> None:
11 super().__init__()
12 self.model = model
13 self.model_field = model_field
14 self.url_field = url_field
16 def __call__(self, serializer_field):
17 val = serializer_field.context["view"].kwargs.get(
18 serializer_field.context["view"].lookup_field, None
19 )
20 if self.url_field:
21 val = serializer_field.context["view"].kwargs.get(self.url_field, None)
22 return self.model.objects.get(**{self.model_field: val})
24 def __repr__(self):
25 return f"{self.__class__.__name__}()"