yceruto/django-ajax

Problem with Http404

TvoroG opened this issue · 3 comments

Hi! Thanks for lib.

Example:
views.py

from django.http import Http404
from django_ajax.decorators import ajax

@ajax
def some_page(request):
    raise Http404

After curl -H "X-Requested-With: XMLHttpRequest" http://127.0.0.1:8001/some_page/

Traceback

Internal Server Error: /some_page/
Traceback (most recent call last):
  File "/home/marsel/.virtualenvs/smi/lib/python3.5/site-packages/django_ajax/decorators.py", line 68, in inner
    return render_to_json(func(request, *args, **kwargs), **ajax_kwargs)
  File "/home/marsel/programming/ajax/http404/views.py", line 9, in some_page
    raise Http404
django.http.response.Http404

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/marsel/.virtualenvs/smi/lib/python3.5/site-packages/django/core/handlers/base.py", line 149, in get_response
    response = self.process_exception_by_middleware(e, request)
  File "/home/marsel/.virtualenvs/smi/lib/python3.5/site-packages/django/core/handlers/base.py", line 147, in get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "/home/marsel/.virtualenvs/smi/lib/python3.5/site-packages/django_ajax/decorators.py", line 70, in inner
    return render_to_json(exception, request=request)
  File "/home/marsel/.virtualenvs/smi/lib/python3.5/site-packages/django_ajax/shortcuts.py", line 110, in render_to_json
    return JSONResponse(data,  *args, **kwargs)
  File "/home/marsel/.virtualenvs/smi/lib/python3.5/site-packages/django_ajax/response.py", line 29, in __init__
    content=serialize_to_json(data, *args, **kwargs),
  File "/home/marsel/.virtualenvs/smi/lib/python3.5/site-packages/django_ajax/encoder.py", line 65, in serialize_to_json
    return json.dumps(data, *args, **kwargs)
  File "/nix/store/qblj6pk8067czq8ya6bfllfvy0mndqjh-python3-3.5.2/lib/python3.5/json/__init__.py", line 237, in dumps
    **kw).encode(obj)
TypeError: __init__() got an unexpected keyword argument 'request'
[22/Sep/2016 09:36:09] "GET /some_page/ HTTP/1.1" 500 21133

raise Exception is just fine, because pop of request happens here.

@TvoroG thank you for reporting this bug, I'll working this weekend to solve it.

I have this same problem. @yceruto please, when you can resolve this? thank you a lot!!

Released 2.4 https://pypi.org/project/djangoajax/2.4/ problem solved, sorry for the delay. Thanks!