summaryrefslogtreecommitdiff
path: root/django/db
diff options
context:
space:
mode:
authorAndrew Godwin <andrew@aeracode.org>2014-01-19 19:27:10 +0000
committerAndrew Godwin <andrew@aeracode.org>2014-01-19 19:27:30 +0000
commit6bbb82001455efb39a57c8ccfe09ff027633eced (patch)
tree50401b951119edca23bf29a9e2398ca29915f2de /django/db
parent34263c67b4315bb326c15d23bdf0363b3a372e17 (diff)
Fixed #21290: Documented migration serializing and improved error
Diffstat (limited to 'django/db')
-rw-r--r--django/db/migrations/writer.py6
1 files changed, 5 insertions, 1 deletions
diff --git a/django/db/migrations/writer.py b/django/db/migrations/writer.py
index a0ff149372..355ad3d90e 100644
--- a/django/db/migrations/writer.py
+++ b/django/db/migrations/writer.py
@@ -2,6 +2,7 @@ from __future__ import unicode_literals
import datetime
import inspect
+import decimal
from importlib import import_module
import os
import types
@@ -221,6 +222,9 @@ class MigrationWriter(object):
# Promise
elif isinstance(value, Promise):
return repr(force_text(value)), set()
+ # Decimal
+ elif isinstance(value, decimal.Decimal):
+ return repr(value), set(["from decimal import Decimal"])
# Django fields
elif isinstance(value, models.Field):
attr_name, path, args, kwargs = value.deconstruct()
@@ -255,7 +259,7 @@ class MigrationWriter(object):
return "%s.%s" % (module, value.__name__), set(["import %s" % module])
# Uh oh.
else:
- raise ValueError("Cannot serialize: %r" % value)
+ raise ValueError("Cannot serialize: %r\nThere are some values Django cannot serialize into migration files.\nFor more, see https://docs.djangoproject.com/en/dev/topics/migrations/#migration-serializing" % value)
MIGRATION_TEMPLATE = """\