@@ -17,8 +17,16 @@ def adapt_datefield_value(self, value):
17
17
return datetime .datetime .combine (value , datetime .datetime .min .time ())
18
18
19
19
def adapt_datetimefield_value (self , value ):
20
- if not settings .USE_TZ and value is not None and timezone .is_naive (value ):
21
- value = timezone .make_aware (value )
20
+ if value is None :
21
+ return None
22
+ if timezone .is_aware (value ):
23
+ if settings .USE_TZ :
24
+ value = timezone .make_naive (value , self .connection .timezone )
25
+ else :
26
+ raise ValueError (
27
+ "MongoDB backend does not support timezone-aware "
28
+ "datetimes when USE_TZ is False."
29
+ )
22
30
return value
23
31
24
32
def adapt_decimalfield_value (self , value , max_digits = None , decimal_places = None ):
@@ -31,6 +39,8 @@ def adapt_timefield_value(self, value):
31
39
"""Store TimeField as datetime."""
32
40
if value is None :
33
41
return None
42
+ if timezone .is_aware (value ):
43
+ raise ValueError ("MongoDB backend does not support timezone-aware times." )
34
44
return datetime .datetime .combine (datetime .datetime .min .date (), value )
35
45
36
46
def get_db_converters (self , expression ):
@@ -39,7 +49,7 @@ def get_db_converters(self, expression):
39
49
if internal_type == "DateField" :
40
50
converters .append (self .convert_datefield_value )
41
51
elif internal_type == "DateTimeField" :
42
- if not settings .USE_TZ :
52
+ if settings .USE_TZ :
43
53
converters .append (self .convert_datetimefield_value )
44
54
elif internal_type == "DecimalField" :
45
55
converters .append (self .convert_decimalfield_value )
@@ -56,8 +66,7 @@ def convert_datefield_value(self, value, expression, connection):
56
66
57
67
def convert_datetimefield_value (self , value , expression , connection ):
58
68
if value is not None :
59
- # Django expects naive datetimes when settings.USE_TZ is False.
60
- value = timezone .make_naive (value )
69
+ value = timezone .make_aware (value , self .connection .timezone )
61
70
return value
62
71
63
72
def convert_decimalfield_value (self , value , expression , connection ):
0 commit comments