django-tastypie: Não é possível acessar bundle.request em desidrato (self, bundle)
Encontrei alguém com o mesmo problema, mas a solução para ele não funciona comigo: consulte Django-Tastypie: Como você acessa o objeto de solicitação (Http) no pacot
Estou tentando aplicar a solução alternativa sugerida em:Django tastypie: O recurso é diferente na solicitação detalhada e na solicitação de lista
resultando este código no meu arquivo de recursos (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
Eu recebo o erro:
{
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'
"
}