Skip to content


Subversion checkout URL

You can clone with
Download ZIP
An application to allow for other apps to easily store site based configurations
Python HTML
Pull request Compare This branch is 33 commits ahead, 27 commits behind zbyte64:master.


Config Store

  • Stores configurations and are retrievable as a dictionary
  • Configurations are lazily loaded and are cached per request
  • Configurations can have a Setup action to run a setup function. Configforms will follow HttpRequests returned from that function.
  • Configuration is defined as a django form
  • Configurations can be encrypted by registering a Configform as an AESEncryptedConfiguration


  1. Add the 'configstore' directory to your Python path
  2. Add 'configstore' to your INSTALLED_APPS in your settings file


Define your configuration form somewhere:

from django import forms
from django.contrib.auth.models import User

from configstore.forms import ConfigurationForm

class ExampleConfigurationForm(ConfigurationForm):
    amount = forms.DecimalField()
    message = forms.CharField()
    user = forms.ModelChoiceField(queryset=User.objects.all())

    def config_task(self):
        return HttpResponseRedirect('/exampleform/configuration/')

Register the form:

from configstore.configs import ConfigurationInstance, register

complex_instance = ConfigurationInstance('example', 'Example Config', ExampleConfigurationForm)

You can instead encrypt the data in your configstore data section using a different Configuration:

from configstore.configs import AESEncryptedConfiguration, register

complex_instance = AESEncryptedConfiguration('example', 'Example Config', ExampleConfigurationForm)

Somewhere else in your code retrieve the config and use it:

from configstore.configs import get_config
config = get_config('example')
print config['amount']
Something went wrong with that request. Please try again.