Skip to main content

Extended Settings for Django Project with settings.d/

Project description

django-extended-settings

Apps for Django to extend global settings with additional files

Initialize other configuration settings for django project Other configurations must be set in /path/to/project/djangoproject/settings.d/*_settings.py

    Project/
    |_ apps1/
    |_ ...
    |_ project/
       |_ settings.py
       |_ urls.py
       |_ ...
       |_ settings.d/
          |_ one_settings.py
          |_ second_settings.py

The current version of the Django Extended Settings is 1.3.1. It works on Django ≥ 5.0.

Installation

Getting the code

The recommended way to install the Django Extended Settings is via pip or pipenv:

$ pip install django-extended-settings

Prerequisites

Make sure add extended_settings to your INSTALLED_APPS setting:

INSTALLED_APPS = [
    # ...
    'extended_settings',
    # ...
]

Play settings into your project

Create sub directory settings.d/ into django project directory and put your configuration into independant files with this patterns *_settings.py

sample : /path/to/project/djangopython/settings.d/production_settings.py

Play database settings

You can add some settings in database

$ ./manage.py migrate

In your python files, you can create settings (in command for example) like this

from extended_settings.models import ExtentedSettings

o = ExtentedSettings()
o.name = "My home page location"
o.key = "hostname"
o.value = "http://localhost:8000"
o.save()

better alternative,

from extended_settings.models import ExtentedSettings

ExtentedSettings.set(
    key="hostname",
    value="http://localhost:8000",
    name="My home page location",
)

ExtentedSettings.set_data(
    key="data",
    value=["Aron Run", "toto marche", "mistal:online", -3.14, True, False, {"val": 2}],
    name="My list",
)

To retrieve settings in your views, ...

from extended_settings.models import ExtentedSettings

my_var = ExtentedSettings.get("hostname")
my_var = ExtentedSettings.get("hostname", 'default value')

my_int = ExtentedSettings.get_int("my-int")
my_float = ExtentedSettings.get_float("my-float", 100.0)
my_bool = ExtentedSettings.get_boolean("my-bool") # True = yes, y, true, 1, ...

my_list = ExtentedSettings.get_data("data")
>>> ['Aron marcel', 'toto marche', 'mistral:online', -3.14, True, False, {"val": 2}]

Misc

The Django Extended Settings is released under the BSD license, like Django itself. If you like it, please consider contributing!

The Django Extended Settings was originally created by Mickael Badet in September 2018.

Special thanks to contributer JunkyDeveloper for Django ≥ 5.0, Python 3.12 fix.

Project details


Download files

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

Source Distribution

django_extended_settings-1.4.0.tar.gz (7.9 kB view details)

Uploaded Source

File details

Details for the file django_extended_settings-1.4.0.tar.gz.

File metadata

File hashes

Hashes for django_extended_settings-1.4.0.tar.gz
Algorithm Hash digest
SHA256 deac626c390976dc68758c048fa61d273f935184d1d14713b3b92039befd3c5f
MD5 4d1842572b7bb3f92e385d8db434fc41
BLAKE2b-256 d1bdf210ecdc3cbaa6b5fbecb560ecc7fcf66db5e2da629d8d3d78be190504b7

See more details on using hashes here.

Supported by

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