Skip to main content

Master Settings is a simple Django app to have simple typed settings in django app with type validation.

Installation & Setup

  1. Install using pip

$> pip install django-ma-settings
  1. add ‘ma-settings’ into INSTALLED_APPS

INSTALLED_APPS = (
    # ...
    'ma_settings',
    # ...
)
  1. define MASTER_SETTINGS dict with your settings definition

template:

MASTER_SETTINGS = {
    '(setting_name)':{
        'type' : '(setting_type)',
        'display_name': '(displayed name)', #optional
        'default': (default value), # optional
        'options': (choice options), # optional
        'model': (foreign model), # optional, use only when foreign type is chosen
    }
}

example:

MASTER_SETTINGS = {
    'max_email_size_kb': {
        'type': 'integer',
        'display_name': 'Max email size(kb)',
        'default': 400,
    },
    'text_color': {
        'type': 'choices',
        'display_name': 'Text color',
        'options': ['White', 'Black', 'Red', 'Blue'],
        'default': 'White',
    },
    'our_rate': {
        'type': 'float',
        'display_name': 'Our rate',
        'default': 1.0,
    },
    'email_from': {
        'type': 'string'
        'display_name': 'Email from',
    },
    'Default client': {
        'type': 'foreign',
        'model': 'my_app.Client'
    }
}
  1. define BASE_SETTINGS_TEMPLATE_NAME

BASE_SETTINGS_TEMPLATE_NAME = "template_name.html"

#  Template file must contain empty {% block settings %}
  1. in urls.py add include(‘ma_settings.urls’)

url(r'^settings/', include('ma_settings.urls')),

#  Use url name 'master_settings_home' to access settings page

{% url 'master_settings_home' %}
  1. Run commands to initialize settings

$> python manage.py syncdb
$> python manage.py init_settings

Using

To get setting use

from ma_settings import master_settings
master_settings.get('setting_name', default='default')

To set new value:

master_settings.set('setting_name', [value|model_instance])

To check if setting exists:

master_settings.exists('setting_name')

Updating settings definition

After updating settings definition in settings.py run this command to update settings

python manage.py init_settings

Download files

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

Source Distribution

django-ma-settings-1.0.9.tar.gz (7.5 kB view details)

Uploaded Source

File details

Details for the file django-ma-settings-1.0.9.tar.gz.

File metadata

File hashes

Hashes for django-ma-settings-1.0.9.tar.gz
Algorithm Hash digest
SHA256 82a4c367ac31fad89e79998f6383dc994a121c2067e749a94dc2cb708b7e2075
MD5 9885a7ed949666d091daeca1c0ecf059
BLAKE2b-256 1f3f906638b2c6241bf73f602ba13eb76370e1b67772cc8eab5d2222a6778e71

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

1.0.9 This release

1 file

1.0.8

1 file

1.0.7

1 file

1.0.6

1 file

1.0.5

1 file

1.0.4

1 file

1.0.3

1 file

1.0.2

1 file

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page