def get_object(self): queryset = self.filter_queryset(self.get_queryset()) # Perform the lookup filtering. lookup_url_kwarg = self.lookup_url_kwarg or self.lookup_field assert lookup_url_kwarg in self.kwargs, ( 'Expected view %s to be called with a URL keyword argument ' 'named "%s". Fix your URL conf, or set the `.lookup_field` ' 'attribute on the view correctly.' % (self.__class__.__name__, lookup_url_kwarg) ) try: (model, decoded_pk) = IDObfuscator.decode(self.kwargs[lookup_url_kwarg]) concrete_model = self.serializer_class.Meta.model._meta.concrete_model if model is not concrete_model: raise serializers.ValidationError('The specified ID refers to an {}. Expected {}'.format(model._meta.model_name, concrete_model._meta.model_name)) except InvalidID: raise serializers.ValidationError('Invalid ID') filter_kwargs = {self.lookup_field: decoded_pk} obj = get_object_or_404(queryset, **filter_kwargs) # May raise a permission denied self.check_object_permissions(self.request, obj) return obj
def get_object(self): queryset = self.filter_queryset(self.get_queryset(False)) # Perform the lookup filtering. lookup_url_kwarg = self.lookup_url_kwarg or self.lookup_field assert lookup_url_kwarg in self.kwargs, ( 'Expected view %s to be called with a URL keyword argument ' 'named "%s". Fix your URL conf, or set the `.lookup_field` ' 'attribute on the view correctly.' % (self.__class__.__name__, lookup_url_kwarg)) try: (model, decoded_pk) = IDObfuscator.decode(self.kwargs[lookup_url_kwarg]) concrete_model = self.serializer_class.Meta.model._meta.concrete_model if model is not concrete_model: raise serializers.ValidationError( 'The specified ID refers to an {}. Expected {}'.format( model._meta.model_name, concrete_model._meta.model_name)) except InvalidID: raise serializers.ValidationError('Invalid ID') filter_kwargs = {self.lookup_field: decoded_pk} obj = get_object_or_404(queryset, **filter_kwargs) # May raise a permission denied self.check_object_permissions(self.request, obj) return obj
def get_raws(obj): if isinstance(obj, str): model, id = IDObfuscator.decode(obj) else: model = obj._meta.model id = obj.id return RawDatum.objects.filter( normalizeddata__changeset__changes__target_id=id, normalizeddata__changeset__changes__target_type=ContentType.objects. get_for_model(model, for_concrete_model=True))
def get_raws(obj): if isinstance(obj, str): model, id = IDObfuscator.decode(obj) else: model = obj._meta.model id = obj.id return RawData.objects.filter( normalizeddata__changeset__changes__target_id=id, normalizeddata__changeset__changes__target_type=ContentType.objects.get_for_model(model, for_concrete_model=True) )