(django-framework-extension)= # Django framework extension The `django-framework` extension includes configuration options customised for a Django application. This document describes all the keys that a user may interact with. ```{tip} If you'd like to see the full contents contributed by this extension, see {ref}`How to manage extensions `. ``` ## Database requirement Django requires a database to function. When generating a new project, the default is to make use of [SQLite](https://www.sqlite.org/). Using SQLite is not recommended for production, especially on Kubernetes deployments, because the database is not shared across units and any contents will be removed upon a new container being deployed. The `django-framework` extension therefore requires a database integration for every application, such as [PostgreSQL](https://www.postgresql.org/) or [MySQL](https://www.mysql.com/). See the {ref}`how-to guide ` for how to deploy a database and integrate the Django application with it. ## `config.options` key You can use the predefined options (run `charmcraft expand-extensions` for details) but also add your own, as needed. In the latter case, any option you define will be used to generate environment variables; a user-defined option `config-option-name` will generate an environment variable named `DJANGO_CONFIG_OPTION_NAME` where the option name is converted to upper case, dashes will be converted to underscores and the `DJANGO_` prefix will be added. In either case, you will be able to set it in the usual way by running `juju config