Version 1.2.3: Added a new way to register models manually

This commit is contained in:
Corey Oordt 2015-05-05 18:05:37 -05:00
parent a4c9e70950
commit b75f11213c
2 changed files with 13 additions and 9 deletions

View file

@ -1,7 +1,7 @@
__version_info__ = {
'major': 1,
'minor': 2,
'micro': 2,
'micro': 3,
'releaselevel': 'final',
'serial': 1
}
@ -19,11 +19,14 @@ def get_version(short=False):
__version__ = get_version()
try:
def register():
from categories import settings
from categories.registration import (_process_registry, register_fk,
register_m2m)
_process_registry(settings.FK_REGISTRY, register_fk)
_process_registry(settings.M2M_REGISTRY, register_m2m)
except:
pass
try:
register()
except Exception as e:
print e

View file

@ -4,6 +4,7 @@ These functions handle the adding of fields to other models
from django.db.models import FieldDoesNotExist
import fields
from settings import FIELD_REGISTRY, MODEL_REGISTRY
from django.utils.translation import ugettext_lazy as _
def register_m2m(model, field_name='categories', extra_params={}):
@ -42,7 +43,7 @@ def _process_registry(registry, call_func):
for key, value in registry.items():
model = get_model(*key.split('.'))
if model is None:
raise ImproperlyConfigured(_('%(key) is not a model') % {'key' : key})
raise ImproperlyConfigured(_('%(key)s is not a model') % {'key': key})
if isinstance(value, (tuple, list)):
for item in value:
if isinstance(item, basestring):
@ -51,13 +52,13 @@ def _process_registry(registry, call_func):
field_name = item.pop('name')
call_func(model, field_name, extra_params=item)
else:
raise ImproperlyConfigured(_("%(settings) doesn't recognize the value of %(key)") %
{'settings' : 'CATEGORY_SETTINGS', 'key' : key})
raise ImproperlyConfigured(_("%(settings)s doesn't recognize the value of %(key)s") %
{'settings': 'CATEGORY_SETTINGS', 'key': key})
elif isinstance(value, basestring):
call_func(model, value)
elif isinstance(value, dict):
field_name = value.pop('name')
call_func(model, field_name, extra_params=value)
else:
raise ImproperlyConfigured(_("%(settings) doesn't recognize the value of %(key)") %
{'settings' : 'CATEGORY_SETTINGS', 'key' : key})
raise ImproperlyConfigured(_("%(settings)s doesn't recognize the value of %(key)s") %
{'settings': 'CATEGORY_SETTINGS', 'key': key})