Skip to main content

A context decorator for Django views

Project description

Continuous integration Coverage PyPI

django-context-decorator is a Python package for Django removing the need to call super().get_context_data(**kwargs) in nearly every Django view.

Usage

from django_context_decorator import context
from django.utils.functional import cached_property
from django.views.generic import TemplateView

class MyView(TemplateView):
    template_name = 'path/to/template.html'

    @context
    def context_variable(self):
        return 'context value'

    @context
    @property
    def context_property(self):
        return 'context property'

    @context
    @cached_property
    def expensive_context_property(self):
        return 'expensive context property'

Now you’ll have access to {{ context_variable }}, {{ context_property }} and {{ expensive_context_property }} in your template.

Please note: While this package works with the @cached_property decorator, please make sure to add the @context decorator above the @cached_property decorator.

Limitations

Due to the usage of __set_name__, this package is limited to usage with Python 3.6+.

Development

All code resides in django_context_decorator.py. Tests are collected by pytest from all files starting with test_. To run tests, start a virtual environment, install the dependencies, and run pytest:

pip install django pytest pytest-cov
py.test --cov-report term --cov=django_context_decorator

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Filename, size & hash SHA256 hash help File type Python version Upload date
django_context_decorator-1.5.0-py3-none-any.whl (2.9 kB) Copy SHA256 hash SHA256 Wheel py3
django_context_decorator-1.5.0.tar.gz (2.8 kB) Copy SHA256 hash SHA256 Source None

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page