django-context-variables

Simple utility to help make declarative class-based views in Django


License
MIT
Install
pip install django-context-variables==0.0.3

Documentation

django-context-variables

Simple utility to help make declarative class-based views in Django

Each method on a CBV decorated with context_variable is evaluated once per instance (==request) by the get_context_variables function and added to the template's context.

##Usage views.py:

class MyCBV(TemplateView):
    template_name = "my_template.html"

    def get_context_data(self, **kwargs):
        return get_context_variables(self)

    @context_variable
    def page(self):
        return get_object_or_404(MyModel, self.kwargs.get('page_id'))

    @context_variable
    def page_title(self):
        return '%s - My Site' % self.page.title

my_template.html:

<html>
    <title>{{ page_title }}</title>
    <body>
        {{ page.content }}
    </body>
</html>