|
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