|
6 | 6 |
|
7 | 7 | import django
|
8 | 8 | from django.db import models, router
|
9 |
| -from django.db.models import loading |
10 | 9 | from django.db.models.fields.proxy import OrderWrt
|
11 | 10 | from django.db.models.fields.related import RelatedField
|
12 | 11 | from django.conf import settings
|
13 | 12 | from django.contrib import admin
|
14 |
| -from django.utils import importlib, six |
| 13 | +from django.utils import six |
15 | 14 | from django.utils.encoding import python_2_unicode_compatible
|
16 | 15 | from django.utils.encoding import smart_text
|
17 | 16 | from django.utils.timezone import now
|
18 | 17 | from django.utils.translation import string_concat
|
19 | 18 |
|
20 |
| -from .manager import HistoryDescriptor |
21 |
| - |
| 19 | +try: |
| 20 | + import importlib |
| 21 | +except ImportError: |
| 22 | + from django.utils import importlib |
22 | 23 | try:
|
23 | 24 | from django.apps import apps
|
24 | 25 | except ImportError: # Django < 1.7
|
| 26 | + from django.db.models.loading import get_app |
25 | 27 | apps = None
|
| 28 | +else: |
| 29 | + get_app = apps.get_app |
26 | 30 | try:
|
27 | 31 | from south.modelsinspector import add_introspection_rules
|
28 | 32 | except ImportError: # south not present
|
|
31 | 35 | add_introspection_rules(
|
32 | 36 | [], ["^simple_history.models.CustomForeignKeyField"])
|
33 | 37 |
|
| 38 | +from .manager import HistoryDescriptor |
| 39 | + |
34 | 40 | registered_models = {}
|
35 | 41 |
|
36 | 42 |
|
@@ -99,7 +105,7 @@ def create_history_model(self, model):
|
99 | 105 | elif app_module != self.module:
|
100 | 106 | if apps is None: # Django < 1.7
|
101 | 107 | # has meta options with app_label
|
102 |
| - app = loading.get_app(model._meta.app_label) |
| 108 | + app = get_app(model._meta.app_label) |
103 | 109 | attrs['__module__'] = app.__name__ # full dotted name
|
104 | 110 | else:
|
105 | 111 | # Abuse an internal API because the app registry is loading.
|
|
0 commit comments