Skip to content

Commit 6570aa2

Browse files
committed
Fix float converter.
1 parent 9ff6438 commit 6570aa2

File tree

2 files changed

+12
-4
lines changed

2 files changed

+12
-4
lines changed

django_mongodb/compiler.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -324,7 +324,7 @@ def build_query(self, columns=None):
324324
query.project_fields = self.get_project_fields(columns, ordering=query.ordering)
325325
try:
326326
where = getattr(self, "where", self.query.where)
327-
query.mongo_query = {"$expr": where.as_mql(self, self.connection)} if where else None
327+
query.mongo_query = {"$expr": where.as_mql(self, self.connection)}
328328
except FullResultSet:
329329
query.mongo_query = {}
330330
return query

django_mongodb/operations.py

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -82,9 +82,11 @@ def get_db_converters(self, expression):
8282
elif internal_type == "DateTimeField":
8383
if settings.USE_TZ:
8484
converters.append(self.convert_datetimefield_value)
85-
elif internal_type in ("DecimalField", "FloatField") or internal_type.endswith(
86-
"IntegerField"
87-
):
85+
elif internal_type == "FloatField":
86+
converters.append(self.convert_floatfield_value)
87+
elif internal_type.endswith("IntegerField"):
88+
converters.append(self.convert_integerfield_value)
89+
elif internal_type == "DecimalField":
8890
converters.append(self.convert_decimalfield_value)
8991
elif internal_type == "JSONField":
9092
converters.append(self.convert_jsonfield_value)
@@ -126,6 +128,12 @@ def convert_durationfield_value(self, value, expression, connection):
126128
value = datetime.timedelta(milliseconds=int(str(value)))
127129
return value
128130

131+
def convert_floatfield_value(self, value, expression, connection):
132+
return None if value is None else float(value)
133+
134+
def convert_integerfield_value(self, value, expression, connection):
135+
return None if value is None else float(value)
136+
129137
def convert_jsonfield_value(self, value, expression, connection):
130138
"""
131139
Convert dict data to a string so that JSONField.from_db_value() can

0 commit comments

Comments
 (0)