1
0
mirror of https://github.com/django/django.git synced 2025-10-31 09:41:08 +00:00

[1.7.x] Fixed #23770 -- Changed serialization strategy for floats with respect to NaN and Inf

Thanks to w0rp for the report

Backport of c7c098cf97 from master.
This commit is contained in:
Markus Holtermann
2014-11-06 12:29:43 +01:00
committed by Baptiste Mispelon
parent 77209e783c
commit 1f50ea730e
3 changed files with 17 additions and 4 deletions

View File

@@ -1,10 +1,11 @@
from __future__ import unicode_literals
import datetime
import inspect
import decimal
import collections
import datetime
import decimal
from importlib import import_module
import inspect
import math
import os
import re
import sys
@@ -303,7 +304,11 @@ class MigrationWriter(object):
elif isinstance(value, SettingsReference):
return "settings.%s" % value.setting_name, set(["from django.conf import settings"])
# Simple types
elif isinstance(value, six.integer_types + (float, bool, type(None))):
elif isinstance(value, float):
if math.isnan(value) or math.isinf(value):
return 'float("{}")'.format(value), set()
return repr(value), set()
elif isinstance(value, six.integer_types + (bool, type(None))):
return repr(value), set()
elif isinstance(value, six.binary_type):
value_repr = repr(value)