This is a Django app designed to store global constants with different data types. It provides a central location to manage and access configuration values that can be easily reused throughout your Django project.
Project description
Django Constants
This is a Django app designed to store global constants with different data types. It provides a central location to manage and access configuration values that can be easily reused throughout your Django project.
Getting Started
- Add "django_constants" to the INSTALLED_APPS list in your project's settings:
INSTALLED_APPS = [
# ...
"django_constants",
# ...
]
- Apply migrations:
python manage.py migrate
Usage
Adding Global Constants
-
Log in to the Django admin interface. Navigate to the "Global Constants" section. Add new constants with their names, values, and data types.
-
Create/Update through models
from django_constants.models import GlobalConstant, KeyTypeChoices
GlobalConstant.objects.create(
key="CONSTANT_NAME", key_type=KeyTypeChoices.INT, value="123"
)
# NOTE: key is a unique field in database so only one key can exist in GlobalConstant model
GlobalConstant.objects.filter(key="CONSTANT_NAME").update(value="1234")
# Similary constants of other types can be created by specifying the key type and value as string
GlobalConstant.objects.create(
key="sample_str", key_type=KeyTypeChoices.STR, value="abc"
)
- Sample create functions for all other available data types
GlobalConstant.objects.create(
key="sample_int", key_type=KeyTypeChoices.INT, value="123"
)
GlobalConstant.objects.create(
key="sample_float", key_type=KeyTypeChoices.FLOAT, value="123.345"
)
GlobalConstant.objects.create(
key="sample_bool", key_type=KeyTypeChoices.BOOL, value="True"
)
GlobalConstant.objects.create(
key="sample_dict",
key_type=KeyTypeChoices.DICT,
value="""{"abc":"def",1:"234","4":{"a":"b"}}""",
)
GlobalConstant.objects.create(
key="sample_list",
key_type=KeyTypeChoices.LIST,
value="""["123","ABC",12,14.567,True,False]""",
)
GlobalConstant.objects.create(
key="sample_tuple",
key_type=KeyTypeChoices.TUPLE,
value="""("123","ABC",12,14.567,True,False)""",
)
GlobalConstant.objects.create(
key="sample_set",
key_type=KeyTypeChoices.SET,
value="""{"123","ABC",12,14.567,True,False}""",
)
- Accessing Global Constants
The get_constant_value method returns the constant value with the appropriate data type as specified during creation.
# Get the value of a constant
constant_value = GlobalConstant.objects.get_constant_value("CONSTANT_NAME")
# Output -> constant_value = 1234 (type <class 'int'>)
constant_value = GlobalConstant.objects.get_constant_value("sample_dict")
# Output -> constant_value = {"abc":"def",1:"234","4":{"a":"b"}} (type <class 'dict'>)
Contributing
Contributions are welcome! If you find any issues or have suggestions for improvements, feel free to open an issue or submit a pull request.
v1.0.0
- First version of this Django constants!
- Validated against Django >= 3.2 .
- Support for data types such as str, int, float, bool, dict, list, tuple, set
Next Milestones
- Add support for bytes datatype
- Add encryption logic for senstive constants like secret keys, payment related info, etc.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file django_constant-1.0.0.tar.gz
.
File metadata
- Download URL: django_constant-1.0.0.tar.gz
- Upload date:
- Size: 5.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.8.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | becbde30015995692a533e37dd537cd5d4c02e984c265e07dd5109572db90d1e |
|
MD5 | 7df7737d17b4f2d7d4eefa9c8ab86d91 |
|
BLAKE2b-256 | 3d2841035909acf627d2065b632cc8bae4da1bbacb978ca3e6f0bc4ee75e7609 |