.. _views:

.. module:: swingers.views

Views
=====

Decorators
----------

.. currentmodule:: swingers.views.decorators

.. decorator:: cancel_view_m

    Wraps a (admin)class-based view and handles **cancel** on *POST*.
        
    If *request.POST['_cancel']* or *request.POST['cancel']*, ignore
    the view (cancel the save/update) and redirect to success url instead.

    **requires** *self.get_success_url()* or *self.success_url*

    Usage::
        
        from swingers.views.decorators import cancel_view_m

        class CreateDuck(CreateView):
            model = Duck

            @cancel_view_m
            def post(self, request, \*args, \*\*kwargs):
                return super(CreateDuck, self).post(request, \*args, \*\*kwargs)

            def get_success_url(self):
                return "."


.. decorator:: log_view_dec(logger_name='view_stats')

    Logs the current view function, username and request path as 'view_stats'
    logger.

.. decorator:: log_view_dec_m(logger_name='view_stats')

    Logs the current class-based view, username and request path as 'view_stats'
    logger.
