pythondjangodjango-wsgi

Django WSGIRequest args error


I'm get this AttributeError("'WSGIRequest' object has no attribute 'args'",) when I try and make this call

GET /sign_s3/?s3_object_type=image/jpeg&s3_object_name=default_name

Am I missing something?

Do I need to include *args, **kwargs in addition to request?

Here's the traceback:

            response = middleware_method(request, callback, callback_args, callback_kwargs)
            if response:
                break
    if response is None:
        wrapped_callback = self.make_view_atomic(callback)
        try:
            response = wrapped_callback(request, *callback_args, **callback_kwargs) ...
        except Exception as e:
            # If the view raised an exception, run it through exception
            # middleware, and if the exception middleware returns a
            # response, use that. Otherwise, reraise the exception.
            for middleware_method in self._exception_middleware:
                response = middleware_method(request, e)

the view:

@login_required()
def sign_s3(request):
    object_name = request.args.get('s3_object_name') 

Solution

  • HttpRequest object doesn't have args attribute.

    You should use

    request.GET.get('s3_object_name')
    

    to get s3_object_name value.

    Django documentation has an excellent section on HttpRequest.