Beispiel #1
0
 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
Beispiel #2
0
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
Beispiel #3
0
 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
Beispiel #4
0
 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
Beispiel #5
0
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
Beispiel #6
0
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
Beispiel #7
0
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
Beispiel #8
0
    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
Beispiel #9
0
    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
Beispiel #10
0
 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))
Beispiel #11
0
def get_model(model_string):
    return django_get_model(*model_string.split("|"))
Beispiel #12
0
def get_model(model_string):
    return django_get_model(*model_string.split("|"))
Beispiel #13
0
 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))
Beispiel #14
0
 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
Beispiel #15
0
 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('.'))
Beispiel #16
0
 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
Beispiel #17
0
 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))
Beispiel #18
0
def get_model(model):
    ''' Returns a model specific to this App '''

    return django_get_model(settings.APP_LABEL, model)