Django-tastypie: Unable to access the package. Request in dehydrate (self, bundle)

I found someone with the same problem, but the oral solution for him does not work with me: see Django-Tastypie: how do you request a request object (Http) in a package?

I am trying to apply a workaround suggested in: Django tastypie: the resource shows different in a detailed request, like in a list request

whereby this code is in my resource file (api.py):

class LocationResource(ModelResource): locationtype = fields.ForeignKey(LocationTypeResource, 'locationtype', full=False) class Meta: queryset = Location.objects.all() resource_name = 'location' excludes = ['public_anonymous', 'public_authorized','x','y','z'] authentication = BasicAuthentication() authorization = DjangoAuthorization() def dehydrate(self, bundle): if bundle.request: if bundle.request.path: == "/api/v1/location/": del bundle.data['description'] else: logger.debug("request availabe") else: logger.debug("request not availabe") return bundle 

I get an error message:

 { error_message: "'Bundle' object has no attribute 'request'", traceback: "Traceback (most recent call last): File "/home/michel/django/sites/regelwater/eggs/django_tastypie-0.9.10-py2.6.egg/tastypie/resources.py", line 178, in wrapper response = callback(request, *args, **kwargs) File "/home/michel/django/sites/regelwater/eggs/django_tastypie-0.9.10-py2.6.egg/tastypie/resources.py", line 379, in dispatch_list return self.dispatch('list', request, **kwargs) File "/home/michel/django/sites/regelwater/eggs/django_tastypie-0.9.10-py2.6.egg/tastypie/resources.py", line 409, in dispatch response = method(request, **kwargs) File "/home/michel/django/sites/regelwater/eggs/django_tastypie-0.9.10-py2.6.egg/tastypie/resources.py", line 987, in get_list to_be_serialized['objects'] = [self.full_dehydrate(obj=obj) for obj in to_be_serialized['objects']] File "/home/michel/django/sites/regelwater/eggs/django_tastypie-0.9.10-py2.6.egg/tastypie/resources.py", line 638, in full_dehydrate bundle = self.dehydrate(bundle) File "/home/michel/django/sites/regelwater/reservoir/api.py", line 71, in dehydrate if bundle.request: AttributeError: 'Bundle' object has no attribute 'request' " } 
+1
source share
1 answer

You are probably using Tastypie 9.10 if you installed from pypi. The python version of the Bundle object does not really have a request object .

If you upgrade to the git version of django-tastypie master and use this, the problem should be resolved.

 pip uninstall django-tastypie pip install -e git+https://github.com/toastdriven/django-tastypie.git#egg=django-tastypie 
+3
source

Source: https://habr.com/ru/post/902201/


All Articles