Skip to content

Commit

Permalink
Version 1.2.3: Added a new way to register models manually
Browse files Browse the repository at this point in the history
  • Loading branch information
coordt committed May 5, 2015
1 parent a4c9e70 commit b75f112
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 9 deletions.
11 changes: 7 additions & 4 deletions categories/__init__.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
__version_info__ = {
'major': 1,
'minor': 2,
'micro': 2,
'micro': 3,
'releaselevel': 'final',
'serial': 1
}
Expand All @@ -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
11 changes: 6 additions & 5 deletions categories/registration.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
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={}):
Expand Down Expand Up @@ -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):
Expand All @@ -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})

0 comments on commit b75f112

Please sign in to comment.