django-not-eav is a Django app that attempts the impossible: implement a bad idea the right way.
django-not-eav provides a special model: Attribute.
When such a model is created:
- a model field is generated and added to the corresponding model class dynamically,
- a column is created, using south API,
- the admin is reloaded'
not_eav.autodiscover() is in charge of iterating over all Attribute to add the model fields to the model class dynamically.
You can add or remove fields in the admin, but you may not change a field name or type.