diff options
| author | Andrew Godwin <andrew@aeracode.org> | 2014-01-19 19:27:10 +0000 |
|---|---|---|
| committer | Andrew Godwin <andrew@aeracode.org> | 2014-01-19 19:27:30 +0000 |
| commit | 6bbb82001455efb39a57c8ccfe09ff027633eced (patch) | |
| tree | 50401b951119edca23bf29a9e2398ca29915f2de /django/db | |
| parent | 34263c67b4315bb326c15d23bdf0363b3a372e17 (diff) | |
Fixed #21290: Documented migration serializing and improved error
Diffstat (limited to 'django/db')
| -rw-r--r-- | django/db/migrations/writer.py | 6 |
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 = """\ |
