Skip to content

Commit 14431af

Browse files
committed
Add optional flag to get IP by object_identifier_value
1 parent 95f5b0f commit 14431af

1 file changed

Lines changed: 28 additions & 0 deletions

File tree

ESSArch_TA/ip/views.py

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@
4646
from django.db import IntegrityError
4747
from django.db.models import Prefetch
4848
from django.http import HttpResponse
49+
from django.shortcuts import get_object_or_404
4950
from django_filters.rest_framework import DjangoFilterBackend
5051

5152
from groups_manager.models import Member
@@ -641,6 +642,33 @@ def get_permissions(self):
641642

642643
return super(InformationPackageViewSet, self).get_permissions()
643644

645+
def get_object(self):
646+
queryset = self.filter_queryset(self.get_queryset())
647+
648+
# Perform the lookup filtering.
649+
lookup_url_kwarg = self.lookup_url_kwarg or self.lookup_field
650+
651+
assert lookup_url_kwarg in self.kwargs, (
652+
'Expected view %s to be called with a URL keyword argument '
653+
'named "%s". Fix your URL conf, or set the `.lookup_field` '
654+
'attribute on the view correctly.' %
655+
(self.__class__.__name__, lookup_url_kwarg)
656+
)
657+
658+
lookup_field = self.lookup_field
659+
660+
objid = self.request.query_params.get('objid')
661+
if objid is not None:
662+
lookup_field = 'object_identifier_value'
663+
664+
filter_kwargs = {lookup_field: self.kwargs[lookup_url_kwarg]}
665+
obj = get_object_or_404(queryset, **filter_kwargs)
666+
667+
# May raise a permission denied
668+
self.check_object_permissions(self.request, obj)
669+
670+
return obj
671+
644672
def get_queryset(self):
645673
user = self.request.user
646674
queryset = InformationPackage.objects.visible_to_user(user)

0 commit comments

Comments
 (0)