Skip to content

Commit 4de985a

Browse files
committed
Use DatabaseOperations.adapt_durationfield_value()
(new in Django 6.1)
1 parent 86915e4 commit 4de985a

File tree

3 files changed

+9
-20
lines changed

3 files changed

+9
-20
lines changed

django_mongodb_backend/fields/__init__.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
from .array import ArrayField
22
from .auto import ObjectIdAutoField
3-
from .duration import register_duration_field
43
from .embedded_model import EmbeddedModelField
54
from .embedded_model_array import EmbeddedModelArrayField
65
from .json import register_json_field
@@ -21,5 +20,4 @@
2120

2221

2322
def register_fields():
24-
register_duration_field()
2523
register_json_field()

django_mongodb_backend/fields/duration.py

Lines changed: 0 additions & 18 deletions
This file was deleted.

django_mongodb_backend/operations.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,15 @@ def adapt_decimalfield_value(self, value, max_digits=None, decimal_places=None):
6666
return None
6767
return Decimal128(value)
6868

69+
def adapt_durationfield_value(self, value):
70+
"""DurationField stores milliseconds rather than microseconds."""
71+
value = super().adapt_durationfield_value(value)
72+
if value is not None:
73+
value //= 1000
74+
# Store value as Int64 (long).
75+
value = Int64(value)
76+
return value
77+
6978
def adapt_integerfield_value(self, value, internal_type):
7079
"""Store non-SmallIntegerField variants as Int64 (long)."""
7180
if value is None:

0 commit comments

Comments
 (0)