This is a minimalistic step-by-step guide on how to start using django-configglue to manage the settings for your Django project.
First we need to create the schema that will define the settings we want to support in our configuration files.
Start by creating a module called schema.py, such as
import django from configglue import schema from django_configglue.schema import schemas DjangoSchema = schemas.get(django.get_version()) class MySchema(DjangoSchema): foo = schema.IntOption() bar = schema.BoolOption()
The MySchema schema will support all Django supported settings (as defined in the DjangoSchema schema), and it introduces two custom options (foo and bar in the default section – __main__).
Now we need to create the configuration file where we specify the values we want to have for our options. Create a file called main.cfg
[__main__] foo = 1 bar = true [django] database_engine = sqlite3 database_name = :memory: installed_apps = django.contrib.auth django.contrib.contenttypes django.contrib.sessions django.contrib.sites django_configglue
Finally, we need to implement the glue between configglue and Django, so that it can read out the settings defined in our configuration files.
Replace the standard settings.py module in your project with
from django_configglue.utils import configglue from .schema import MySchema # make django aware of configglue-based configuration configglue(MySchema, ['main.cfg'], __name__)
And let’s make sure everything works as expected
$ python manage.py settings --validate Settings appear to be fine.
That’s it! Your project now uses django-configglue to manage it’s configuration. Congratulations!
If you want to know more about django-configglue, read Using django-configglue: a more in-depth walkthrough.