from __future__ import absolute_import from versions.models import Versionable from django import VERSION from django.db import connection, connections if VERSION >= (1, 7): from django.apps import apps else: from django.db.models import get_app, get_models def database_connection(dbname=None): if dbname: return connections[dbname] else: return connection def get_app_models(app_name, include_auto_created=False): if VERSION >= (1, 7): return apps.get_app_config(app_name).get_models( include_auto_created=include_auto_created) else: return get_models(get_app(app_name), include_auto_created=include_auto_created) def versionable_models(app_name, include_auto_created=False): return [m for m in get_app_models(app_name, include_auto_created) if issubclass(m, Versionable)]