refactor to method
This commit is contained in:
@ -135,22 +135,10 @@ class FilterAction(QueryAction):
|
|||||||
:return: complied and escaped clause
|
:return: complied and escaped clause
|
||||||
:rtype: sqlalchemy.sql.elements.TextClause
|
:rtype: sqlalchemy.sql.elements.TextClause
|
||||||
"""
|
"""
|
||||||
|
|
||||||
if isinstance(self.filter_value, ormar.Model):
|
if isinstance(self.filter_value, ormar.Model):
|
||||||
self.filter_value = self.filter_value.pk
|
self.filter_value = self.filter_value.pk
|
||||||
|
|
||||||
if isinstance(
|
self._convert_dates_if_required()
|
||||||
self.filter_value, (datetime.date, datetime.time, datetime.datetime)
|
|
||||||
):
|
|
||||||
self.filter_value = self.filter_value.isoformat()
|
|
||||||
|
|
||||||
if isinstance(self.filter_value, (list, tuple, set)):
|
|
||||||
self.filter_value = [
|
|
||||||
x.isoformat()
|
|
||||||
if isinstance(x, (datetime.date, datetime.time, datetime.datetime))
|
|
||||||
else x
|
|
||||||
for x in self.filter_value
|
|
||||||
]
|
|
||||||
|
|
||||||
op_attr = FILTER_OPERATORS[self.operator]
|
op_attr = FILTER_OPERATORS[self.operator]
|
||||||
if self.operator == "isnull":
|
if self.operator == "isnull":
|
||||||
@ -164,6 +152,23 @@ class FilterAction(QueryAction):
|
|||||||
)
|
)
|
||||||
return clause
|
return clause
|
||||||
|
|
||||||
|
def _convert_dates_if_required(self) -> None:
|
||||||
|
"""
|
||||||
|
Converts dates, time and datetime to isoformat
|
||||||
|
"""
|
||||||
|
if isinstance(
|
||||||
|
self.filter_value, (datetime.date, datetime.time, datetime.datetime)
|
||||||
|
):
|
||||||
|
self.filter_value = self.filter_value.isoformat()
|
||||||
|
|
||||||
|
if isinstance(self.filter_value, (list, tuple, set)):
|
||||||
|
self.filter_value = [
|
||||||
|
x.isoformat()
|
||||||
|
if isinstance(x, (datetime.date, datetime.time, datetime.datetime))
|
||||||
|
else x
|
||||||
|
for x in self.filter_value
|
||||||
|
]
|
||||||
|
|
||||||
def _compile_clause(
|
def _compile_clause(
|
||||||
self, clause: sqlalchemy.sql.expression.BinaryExpression, modifiers: Dict,
|
self, clause: sqlalchemy.sql.expression.BinaryExpression, modifiers: Dict,
|
||||||
) -> sqlalchemy.sql.expression.TextClause:
|
) -> sqlalchemy.sql.expression.TextClause:
|
||||||
|
|||||||
Reference in New Issue
Block a user