Chamber contains a collection of useful base model classes, form fields, model fields, decorators, or other shortcuts to aid web development in Django.
One can think of it as a toolbox with utilities that were too small to justify creating a standalone library and therefore ended up here. Hence the name Chamber.
The most noteworthy part of Chamber is the alternative base class for Django models called SmartModel
. It provides following additional features:
Other useful components include:
- AuditModel -- adds
created_at
andchanged_at
fields to the basic Django model, - SmartQuerySet -- adds
fast_distinct
method to querysets (useful for PostgreSQL), - several enum classes such as
ChoicesNumEnum
orSequenceChoiceEnum
, - new Django-style shortcuts such as
get_object_or_none
,change_and_save
, orbulk_change_and_save
. MigrationLoadFixture
class that supports loading Django fixtures inside a database migration- ...and more.
You are welcomed to contribute at https://github.com/druids/django-chamber. There is an example project in the repository. Your feature should be added to this example project with tests as well as the documentation.
- Go to the
example
directory and callmake install
to install it. - Run tests using
make test
.
- documentation of this library is a work in progress, needs a lot of attention
- SmartModel extends the AuditModel and therefore always adds
created_at
andchanged_at
fields to the model which is not always desirable
This library is licenced under the 3-clause BSD licence. See the LICENCE file for details.