示例#1
0
def _date_time_filter(query: peewee.Query, attr, value: str):
    if '-' in value:
        start, end = value.split('-')
        # TODO: Add normalization for shorter value
        return query.where((attr >= start) & (attr <= end))

    return query.where(attr == value)
示例#2
0
def _text_filter(query: peewee.Query, attr, value: str):
    if isinstance(value, list):
        return query.where(attr << value)
    value = value.replace('?', '_')
    value = value.replace('*', '%')
    return query.where(attr**value)
示例#3
0
 def query(self, query: pw.Query, column: pw.Field, *ops: t.Tuple,
           **_) -> pw.Query:
     """Apply the filters to Peewee QuerySet.."""
     _, value = ops[0]
     return query.where(column.contains(value))  # type: ignore