Skip to content

Commit 16e8314

Browse files
authored
FloatPreference can be initialized with either int or float (#266)
This fixes issue #265
1 parent e1813df commit 16e8314

File tree

2 files changed

+5
-3
lines changed

2 files changed

+5
-3
lines changed

dynamic_preferences/serializers.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -159,9 +159,9 @@ class FloatSerializer(BaseSerializer):
159159

160160
@classmethod
161161
def clean_to_db_value(cls, value):
162-
if not isinstance(value, float):
163-
raise cls.exception('FloatSerializer can only serialize Float instances')
164-
return value
162+
if not isinstance(value, (int, float)):
163+
raise cls.exception('FloatSerializer can only serialize float or int values')
164+
return float(value)
165165

166166
@classmethod
167167
def to_python(cls, value, **kwargs):

tests/test_serializers.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,8 @@ def test_float_serialization(self):
6363

6464
self.assertEqual(s.serialize(1.0), "1.0")
6565
self.assertEqual(s.serialize(-1.0), "-1.0")
66+
self.assertEqual(s.serialize(1), "1.0")
67+
self.assertEqual(s.serialize(-1), "-1.0")
6668
self.assertEqual(s.serialize(-666.6), "-666.6")
6769
self.assertEqual(s.serialize(666.6), "666.6")
6870

0 commit comments

Comments
 (0)