Metadata-Version: 1.0
Name: django-ajax-toolkit
Version: 0.2.1
Summary: Ajax goodies for django projects.
Home-page: https://github.com/Geekfish/django-ajax-toolkit
Author: Eleni Lixourioti
Author-email: contact@eleni.co
License: BSD
Description: django-ajax-toolkit
        ===================
        
        **Dependencies**
        
        * msgpack-python
        
        
        **CI status (Travis)**
        
        .. image:: https://api.travis-ci.org/Geekfish/django-ajax-toolkit.png?branch=master,release/0.1,release/0.2
        
        
        Returning data objects in views
        -------------------------------
        
        JsonResponse
        ~~~~~~~~~~~~
        If you want to extend your views to work with ajax you may choose to return json data in your response.
        To make this easier you can use ``JsonResponse`` found in ``ajaxtoolkit.http``::
        
            from ajaxtoolkit.http import JsonResponse
        
            class MyView(TemplateView):
        
                def get(self, request, *args, **kwargs):
                    if request.is_ajax:
                        context = self.get_context_data()
                        return JsonResponse(context)
                    # ...
        
        This will set the correct mimetype (``application/json``) and serialise your context data into a json object.
        
        
        MsgpackResponse
        ~~~~~~~~~~~~~~~
        ``MsgpackResponse`` works in a similar way to ``JsonResponse``, but uses msgpack to provide with binary serialisation.
        The usage is the same as with ``JsonResponse``::
        
        
            def get(self, request, *args, **kwargs):
                if request.is_ajax:
                    context = self.get_context_data()
                    return MsgpackResponse(context)
                # ...
        
        
        Ajax Middleware
        ---------------
        If you're using Django's messages framework, you can also add ``ajaxtoolkit.middleware.AjaxMiddleware`` in your
        middleware.
                
        
        This will inject all messages generated in your request into your ``JsonResponse`` object::
        
            from django.contrib import messages
            from ajaxtoolkit.http import JsonResponse
        
            class MyView(TemplateView):
        
                def get(self, request, *args, **kwargs):
                    if request.is_ajax:
                        context = self.get_context_data()
        
                        messages.info(request, "This is very useful")
                        messages.warning(request, "Be careful!")
        
                        return JsonResponse(context)
                    # ...
        
        This would be rendered as the following::
        
            {
                //...
                'django_messages': [
                    {"extra_tags": "info",
                     "message": "This is very useful",
                     "level": 20},
                    {"extra_tags": "warning",
                     "message": "Be careful!",
                     "level": 30}
                ]
            }
        
        
        Bypassing the message middleware
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        
        If you want to send an http response without attaching messages you can do that
        by setting the ``message_support`` attribute of the response object::
        
            context = self.get_context_data()
        
            response = JsonResponse(context)
            response.message_support = False
        
            return response
        
        You can also choose to subclass the original response classes, eg.::
        
            class MsgpackResponseWithoutMessages(MsgpackResponse):
                message_support = False
        
            # ...
        
        
        Contribute
        ==========
        
        Clone, create a virtualenv and run::
        
            make install
        
        This will install all dependencies.  You can then run the tests with::
        
            ./runtests.py
        
Keywords: django,ajax,utilities,http
Platform: linux
Classifier: Environment :: Web Environment
Classifier: Framework :: Django
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: BSD License
Classifier: Operating System :: Unix
Classifier: Development Status :: 3 - Alpha
Classifier: Programming Language :: Python
