django-enummodel 0.1.5
A Django application to bridge the gap between using enumerations and having fully-specified, normalized data models.
django-enummodel is a small utility application designed to help bridge the niche use case(s?) between defining enumerations for a given field (mutually exclusive options) and fully specifying non-exclusive options as instances of a fully specified model type.
In the common case, non-mututally exclusive options configured as a fully specified model (along with a fixture to store those options) can, in the best case, 'just work'; in the worst case, it can provide mild headaches, notably when lazy translations are involved.
In the particular case of the author, the challenge was to avoid having to cope with a O(n) growth rate of fixtures to manage, coupled with the desire to avoid encountering issues of internationalization and being forced to choose a particular character set in which to store these values.
django-enummodel provides a Django Model object with which the developer may extend to provide the functionality sketched above:
LANGUAGE_CHOICES = (
(1,_(u'English')),
(2,_(u'Spanish')),
(3,_(u'French')),
(255,_(u'other')),
)
class Language(EnumModel):
class EnumMeta:
choices = LANGUAGE_CHOICES
Please note that that population of any model derived from EnumModel takes place on syncdb; therefore, changes to the choices basis will need to be rectified by running:
django-admin.py syncdb
Release notes
0.1.5
- Ensure enumeration deletions are properly rectified.
0.1.4
- Include support for South-managed applications.
| File | Type | Py Version | Uploaded on | Size | # downloads |
|---|---|---|---|---|---|
| django-enummodel-0.1.5.tar.gz (md5) | Source | 2011-11-15 | 6KB | 230 | |
- Author: Thom Linton
- Home Page: http://github.com/yorkedork/django-enummodel/tree/master
- License: BSD
- Categories
- Package Index Owner: yorkedork
- DOAP record: django-enummodel-0.1.5.xml
