def get_model(app_label, model_name=None): if model_name is None: app_label, model_name = app_label.split(".") model = django_get_model(app_label, model_name) if not model: raise LookupError return model
def get_model(model, raise_exception=False): if isinstance(model, basestring): # If model is a string, find the appropriate model class try: app_name, model_name = model.split('.') except ValueError: model_class = None else: model_class = django_get_model(app_name, model_name) else: # Assume we have been given a model class or instance model_class = model # Test is this is an instance or subclass of Model try: is_model = issubclass(model_class, Model) except TypeError: is_model = False # Handle failure if not is_model: if raise_exception: raise PermAppException(_('%(model)s is not a Django Model class.' % { 'model': model })) return None # Return the result return model_class
def get_model(app_label, model_name=None): if model_name is None: app_label, model_name = app_label.split('.') model = django_get_model(app_label, model_name) if not model: raise LookupError return model
def get_registered_model(app_label, model_name): model = django_get_model(app_label, model_name, seed_cache=False, only_installed=False) if not model: raise LookupError return model
def get_model(name, optional=True): try: model_name = get_model_name(name, optional=optional) return django_get_model(*model_name.split('.')) except Exception: if not optional: raise ImproperlyConfigured(('Could not find a %s model. Did you ' 'set LIVING_LOTS.MODELS.%s in your ' 'settings.py?') % (name, name)) return None
def get_model(app_label, model_name, *args, **kwargs): """ Gets a model class by it's app label and model name. Fails loudly if the model class can't be imported. This is merely a thin wrapper around Django's get_model function. """ model = django_get_model(app_label, model_name, *args, **kwargs) if model is None: raise ImportError( "{app_label}.{model_name} could not be imported.".format( app_label=app_label, model_name=model_name)) return model
def get_model(model_path): try: from django.apps import apps return apps.get_model(model_path) except ImportError: # Django < 1.7 (cannot use the new app loader) from django.db.models import get_model as django_get_model try: app_label, model_name = model_path.split('.') except ValueError: raise ImproperlyConfigured("SAML_USER_MODEL must be of the form " "'app_label.model_name'") user_model = django_get_model(app_label, model_name) if user_model is None: raise ImproperlyConfigured("SAML_USER_MODEL refers to model '%s' " "that has not been installed" % model_path) return user_model
def get_model(app_label, model_name, *args, **kwargs): """ Gets a model class by it's app label and model name. Fails loudly if the model class can't be imported. This is merely a thin wrapper around Django's get_model function. Raises LookupError if model isn't found. """ # The snippet below is not useful in production, but helpful to # investigate circular import issues # from django.db.models.loading import app_cache_ready # if not app_cache_ready(): # print( # "%s.%s accessed before app cache is fully populated!" % # (app_label, model_name)) model = django_get_model(app_label, model_name, *args, **kwargs) if model is None: raise LookupError( "{app_label}.{model_name} could not be imported.".format( app_label=app_label, model_name=model_name)) return model
def is_model_registered(app_label, model_name): """ Checks whether a given model is registered. This is used to only register Oscar models if they aren't overridden by a forked app. """ return bool(django_get_model(app_label, model_name, seed_cache=False))
def get_model(model_string): return django_get_model(*model_string.split("|"))
def is_model_registered(app_label, model_name): """ Checks whether the given model is registered or not. It is usefull to prevent Machina models for being registered if they are overridden by local apps. """ return bool(django_get_model(app_label, model_name, seed_cache=False))
def get_model(app_label, model_name, *args, **kwargs): """ Given an app label and a model name, returns the corresponding model class. """ model = django_get_model(app_label, model_name, *args, **kwargs) return model
def group_member_model(self): group_member_model_path = getattr(self.GroupsManagerMeta, 'group_member_model', 'groups_manager.GroupMember') return django_get_model(*group_member_model_path.split('.'))
def get_model(model): ''' Returns a model specific to this App ''' return django_get_model(settings.APP_LABEL, model)