(app_label, model_name)
Fetches a Django model using the app registry.

    This doesn't require that an app with the given app label exists, which
    makes it safe to call when the registry is being populated. All other
    methods to access models might raise an exception about the registry not
    being ready yet.

    Raises LookupError if model isn't found.
Fetches a Django model using the app registry.
Fetches a Django model using the app registry .
def get_model(app_label, model_name):
    """
    Fetches a Django model using the app registry.

    This doesn't require that an app with the given app label exists, which
    makes it safe to call when the registry is being populated. All other
    methods to access models might raise an exception about the registry not
    being ready yet.

    Raises LookupError if model isn't found.
    """
    try:
        from django.apps import apps
        from django.core.exceptions import AppRegistryNotReady
    except ImportError:
        # Django < 1.7
        from django.db import models
        return models.get_model(app_label, model_name)

    try:
        return apps.get_model(app_label, model_name)

    except AppRegistryNotReady:
        if apps.apps_ready and not apps.models_ready:
            # If this function is called while `apps.populate()` is
            # loading models, ensure that the module that defines the
            # target model has been imported and try looking the model up
            # in the app registry. This effectively emulates
            # `from path.to.app.models import Model` where we use
            # `Model = get_model('app', 'Model')` instead.
            app_config = apps.get_app_config(app_label)
            # `app_config.import_models()` cannot be used here because it
            # would interfere with `apps.populate()`.
            import_module("%s.%s" % (app_config.name, "models"))
            # In order to account for case-insensitivity of model_name,
            # look up the model through a private API of the app registry.
            return apps.get_registered_model(app_label, model_name)

        else:
            # This must be a different case (e.g. the model really doesn't
            # exist). We just re-raise the exception.
            raise
def get_model ( app_label , model_name ) : try : from django . apps import apps from django . core . exceptions import AppRegistryNotReady except ImportError : # Django < 1.7 from django . db import models return models . get_model ( app_label , model_name ) try : return apps . get_model ( app_label , model_name ) except AppRegistryNotReady : if apps . apps_ready and not apps . models_ready : # If this function is called while `apps.populate()` is # loading models, ensure that the module that defines the # target model has been imported and try looking the model up # in the app registry. This effectively emulates # `from path.to.app.models import Model` where we use # `Model = get_model('app', 'Model')` instead. app_config = apps . get_app_config ( app_label ) # `app_config.import_models()` cannot be used here because it # would interfere with `apps.populate()`. import_module ( "%s.%s" % ( app_config . name , "models" ) ) # In order to account for case-insensitivity of model_name, # look up the model through a private API of the app registry. return apps . get_registered_model ( app_label , model_name ) else : # This must be a different case (e.g. the model really doesn't # exist). We just re-raise the exception. raise