summaryrefslogtreecommitdiff
path: root/django
diff options
context:
space:
mode:
Diffstat (limited to 'django')
-rw-r--r--django/db/migrations/writer.py12
1 files changed, 10 insertions, 2 deletions
diff --git a/django/db/migrations/writer.py b/django/db/migrations/writer.py
index 88145733ec..dee867929d 100644
--- a/django/db/migrations/writer.py
+++ b/django/db/migrations/writer.py
@@ -10,7 +10,7 @@ import sys
import types
from django.apps import apps
-from django.db import models
+from django.db import models, migrations
from django.db.migrations.loader import MigrationLoader
from django.utils import datetime_safe, six
from django.utils.encoding import force_text
@@ -44,7 +44,15 @@ class OperationWriter(object):
argspec = inspect.getargspec(self.operation.__init__)
normalized_kwargs = inspect.getcallargs(self.operation.__init__, *args, **kwargs)
- self.feed('migrations.%s(' % name)
+ # See if this operation is in django.db.migrations. If it is,
+ # We can just use the fact we already have that imported,
+ # otherwise, we need to add an import for the operation class.
+ if getattr(migrations, name, None) == self.operation.__class__:
+ self.feed('migrations.%s(' % name)
+ else:
+ imports.add('import %s' % (self.operation.__class__.__module__))
+ self.feed('%s.%s(' % (self.operation.__class__.__module__, name))
+
self.indent()
for arg_name in argspec.args[1:]:
arg_value = normalized_kwargs[arg_name]