Skip to main content
# django-variable-settings

A simple django application to manage dynamic settings saved in database using namespaced keys and json string values.

## Demo

To try it now, download this repo and use docker-compose to run it

git clone git@github.com:jperelli/django-variable-settings.git
cd django-variable-settings
docker-compose up

Then go to http://localhost:8080/admin and login with user `admin` and password `admin`, you should see the Settings. If you add a settings, it should be a json object. So a string should be saved with double quotes around it.

It can be tested from django shell also easily. Go to another console while `docker-compose up` is running and type

docker-compose exec django ./manage.py shell
>>> import variable_settings
>>> variable_settings.set('evergreenstreet', 123)
>>> variable_settings.set('address.evergreenstreet', 123)
>>> variable_settings.set('address.evergreenavenue', 'first')
>>> variable_settings.get('evergreenstreet')
123
>>> variable_settings.get('address.evergreenavenue')
u'first'
>>> variable_settings.get('address.*')
{u'address.evergreenavenue': u'first', u'address.evergreenstreet': 123}
>>> variable_settings.all()
{u'address.evergreenavenue': u'first', u'evergreenstreet': 123, u'address.evergreenstreet': 123}

## Installation

pip install django-variable-settings

In settings.py add

variable_settings

Then run migrations

manage.py migrate variable_settings

Then use it as in the Demo

## Settings and custom command

If you want to add some default settings to the database then you can add something like this to `settings.py`

# default django_variable_settings
# use ./manage.py variable_settings_initialize
# If overwrite=False(default) they are not applied if already exist in database
VARIABLE_SETTINGS = [
#[ key , value (, overwrite) ]
['alerting.connection', '127.0.0.1', False],
['alerting.warning', 123, False],
['wrong_permissions.enabled', True, True],
]

Use custom command `./manage.py variable_settings_initialize` to save those in database. The command only overwrites the variable value if the last parameter is set to true

## Caching

WIP

# Authors

- Julian Perelli
- Maxi Padulo

# LICENSE

MIT

Metadata

Release files for django-variable-settings 0.0.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for django-variable-settings 0.0.1
File Size Uploaded Provenance Actions
django-variable-settings-0.0.1.tar.gz 4.8 kB Without provenance Details for django-variable-settings-0.0.1.tar.gz

Release files / django-variable-settings-0.0.1.tar.gz

Download URL django-variable-settings-0.0.1.tar.gz
Size 4.8 kB
Tags Source
SHA-256 checksum
How to use checksums
040576fb31d38ecbfc598c5b84184bf22b83a7311bd4a0f47169eecd3fb38744
BLAKE2b-256 checksum
How to use checksums
081f5fc3b4e8eba744d562ab30a866dd813c691b49456933998a93eb88a224c5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Security for django-variable-settings 0.0.1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.0.1 This release

1 release file No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page