exclude sqlite from replacing double %

This commit is contained in:
collerek
2021-04-20 12:38:11 +02:00
parent ac426de757
commit 1e68d42643

View File

@ -56,7 +56,7 @@ class FilterAction(QueryAction):
Extracted in order to easily change table prefixes on complex relations.
"""
def __init__(self, filter_str: str, value: Any, model_cls: Type["Model"],) -> None:
def __init__(self, filter_str: str, value: Any, model_cls: Type["Model"], ) -> None:
super().__init__(query_str=filter_str, model_cls=model_cls)
self.filter_value = value
self._escape_characters_in_clause()
@ -176,6 +176,7 @@ class FilterAction(QueryAction):
clause_text = clause_text.replace(
f"{self.table.name}.{self.column.name}", aliased_name
)
clause_text = clause_text.replace("%%", "%") # remove doubles in some dialects
if self.target_model.Meta.database._backend._dialect.name != 'sqlite':
clause_text = clause_text.replace("%%", "%") # remove %% in some dialects
clause = text(clause_text)
return clause