Skip to main content
This is a pre-production deployment of Warehouse. Changes made here affect the production instance of PyPI (pypi.python.org).
Help us improve Python packaging - Donate today!

Easy app-specific settings for Django

Project Description

Easy app-specific settings for Django.

Installation

To install, run: pip install django-easysettings

Usage

Create a conf.py file within your app’s directory, adding attributes for the default values of your app-specific settings. They will be overridden by any project setting that is provided.

For example:

from easysettings import AppSettings


class Settings(AppSettings):
    MYAPP_WIDGETS = ('foo', 'bar')


settings = Settings()

Then in your app, rather than from django.conf import settings, use from myapp.conf import settings. For example:

from myapp.conf import settings


def dashboard(request):
    data = {}
    for widget in settings.MYAPP_WIDGETS:
        data[widget] = render_widget(widget)
    if settings.DEBUG:
        data['debug_mode'] = True
    # ...

Isolating Settings when Testing

You can force your app’s tests to use the default project settings rather than any value in the project’s settings configuration module.

Just set settings.isolated = True.

For example, you could use a base test class to do this:

class BaseTest(TestCase):

    def setUp(self):
        """
        Isolate all application specific settings.
        """
        output = super(BaseTest, self).setUp()
        settings.isolated = True
        return output

    def tearDown(self):
        """
        Restore settings to their original state.
        """
        settings.isolated = False
        settings.revert()
        return super(BaseTest, self).tearDown()

As also shown in the example above, you can revert any changes made by calling settings.revert().

Release History

Release History

This version
History Node

1.1

History Node

1.0.2

History Node

1.0.1

History Node

1.0

Download Files

Download Files

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

File Name & Checksum SHA256 Checksum Help Version File Type Upload Date
django_easysettings-1.1-py2.py3-none-any.whl (4.9 kB) Copy SHA256 Checksum SHA256 py2.py3 Wheel Apr 4, 2017
django-easysettings-1.1.tar.gz (2.9 kB) Copy SHA256 Checksum SHA256 Source Apr 4, 2017

Supported By

WebFaction WebFaction Technical Writing Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Rackspace Rackspace Cloud Servers DreamHost DreamHost Log Hosting