|
3 | 3 | from django.db.backends.base.operations import BaseDatabaseOperations
|
4 | 4 | from django.utils import timezone
|
5 | 5 | from itertools import chain
|
6 |
| -from datetime import datetime |
| 6 | +from datetime import date, datetime,timedelta |
7 | 7 |
|
8 | 8 | from django.utils.dateparse import parse_date, parse_datetime, parse_time
|
9 | 9 |
|
@@ -94,14 +94,20 @@ def convert_datetimefield_value(self, value, expression, connection):
|
94 | 94 |
|
95 | 95 | def convert_datefield_value(self, value, expression, connection):
|
96 | 96 | if value is not None:
|
97 |
| - if not isinstance(value, datetime.date): |
98 |
| - value = parse_date(value) |
| 97 | + if not isinstance(value, type(datetime.date)): |
| 98 | + if isinstance(value, int): |
| 99 | + value=date.fromordinal(672046+value) |
| 100 | + else: |
| 101 | + value = parse_date(value) |
99 | 102 | return value
|
100 | 103 |
|
101 | 104 | def convert_timefield_value(self, value, expression, connection):
|
102 | 105 | if value is not None:
|
103 |
| - if not isinstance(value, datetime.time): |
104 |
| - value = parse_time(value) |
| 106 | + if not isinstance(value, type(datetime.time)): |
| 107 | + if isinstance(value, int): |
| 108 | + value=timedelta(seconds=value) |
| 109 | + else: |
| 110 | + value = parse_time(value) |
105 | 111 | return value
|
106 | 112 |
|
107 | 113 | def conditional_expression_supported_in_where_clause(self, expression):
|
|
0 commit comments