Changelog
Changelog
The format is based on Keep a Changelog.
[3.2.0] - 2026.01.26
Added
forms.py you can now use create_parameter_field() to get a field that represent the parameter value.
Changed
admin.py refactoring using new forms.create_parameter_field()
Fixed
several minor bug fixing
[3.1.0] - 2026.01.26
Changed:
value size: replace how value is stored in DB, use a TextField instead of a CharField to be able to store any sized JSON or DICT…
[3.0.1] - 2026.01.20
[3.0.0] - 2026.01.20
Added
Python 3.14 compatibility
Django 6 compatibility
Changed
Breaking: Simplified API - replaced type-specific methods with unified
get()andset():param.int(),param.str(),param.bool(), etc. →param.get()param.set_int(),param.set_str(),param.set_bool(), etc. →param.set(value)Parameter.objects.int("SLUG"),Parameter.objects.str("SLUG"), etc. →Parameter.objects.get(slug="SLUG").get()
Refactored to proxy model architecture: each parameter type now has its own proxy class (ParameterInt, ParameterStr, ParameterBool, etc.) with type-specific conversion logic
manager automatically returns the correct proxy class based on
value_type
Added
auto_castparameter onset()method to automatically convert string input to the parameter’s native type before validationparam.set("42", auto_cast=True) # Converts "42" to int for INT parameters param.set("19.6", auto_cast=True) # Converts "19.6" to Decimal for DCL parameters
ParameterValueTypeError exception for type validation errors in set()
[2.1.3] - 2025.11.15
Fixed
Context processor now passes global parameters to templates in their declared format instead of converting everything to strings
Fixed Ruff linting errors
[2.1.2] - 2025.11.15
Changed
Modernized README with concise quick start guide and feature overview
Improved documentation structure with links to full documentation
[2.1.1] - 2025.11.15
Fixed
Read the Docs build configuration: created
docs/requirements.txtwith Sphinx dependencies and simplified.readthedocs.yamlto properly support Poetry-based projects
[2.1.0] - 2025.11.15
Added
Encryption support for parameters with
enable_cypherfielddap_rotate_keymanagement command for rotating encryption keys (two-step process for safety)Persistent backup file for encryption keys (
dap_backup_key.json)Parameter value history tracking: new
enable_historyfield to track previous values with timestamps viaParameterHistorymodel (viewable in admin as read-only inline)Full documentation with Sphinx and ReadTheDocs hosting
Changed
Management commands renamed with
dap_prefix to avoid conflicts:load_param→dap_load,dump_param→dap_dumpKey rotation process redesigned: step 1 generates new key and backs up old one, step 2 applies rotation
[2.0.0] - 2025.11.14
Added
Setter methods to programmatically update parameter values
Parameter validators with built-in validation rules (min/max value, length, regex, etc.)
ParameterValidatormodel to attach multiple validators to parametersCustom validators support via
DJANGO_APP_PARAMETER['validators']settingDynamic validator selection in Django admin with automatic form validation
Validator support in
load_parammanagement command via JSON format (validators in JSON represent the final desired state)dump_param management command to export all parameters to JSON file
Demo project for manual testing and development with example custom validators
New parameter types:
URL (validated URL)
Email (validated email address)
List (comma-separated values)
Dict (JSON dictionary)
Path (file path)
Duration (time duration in seconds)
Percentage (0-100)
DateTime (ISO 8601 datetime)
Date (YYYY-MM-DD)
Time (HH:MM:SS)
Full type hints coverage with Pyright
Enhanced admin interface for managing setters and validators
Custom admin template for parameter change form
Changed
Modernized development tooling: migrated from Black/Flake8 to Ruff
Improved testing strategy with comprehensive test coverage
Updated documentation with new features and usage examples
Enhanced CONTRIBUTING.md with demo project instructions
Fixed
Migration for renaming DATE and TIME type codes to DAT and TIM (to avoid conflicts with new types)
[1.1.3] - 2023.10.18
Added
Boolean type
Fixed
Avoid exception on incorrect parameter’s type
Missing migration
[0.2.0] -
Added
Added get method on Parameter with autocasting
Added a proxy class to access parameter through app_parameter.SLUG (like Django’s settings)
[0.1.3] - 2022-02-23
First public release.
Added
Add unit test
Add use case in readme
Changed
Replace “-” by “_” in slug initialisation