remove unknown ids from lists

This commit is contained in:
j 2016-02-11 22:22:52 +05:30
commit 10e651067c
3 changed files with 17 additions and 3 deletions

View file

@ -103,8 +103,13 @@ class Parser(object):
vk = getattr(self._sort, k)
q = operators.eq(vk, v)
ids = self._model.query.join(self._sort).filter(q).options(load_only('id'))
in_op = operators.notin_op if exclude else operators.in_op
q = in_op(self._model.id, ids)
if not ids:
q = operators.eq(self._model.id, '')
if exclude:
q = ~q
else:
in_op = operators.notin_op if exclude else operators.in_op
q = in_op(self._model.id, ids)
return q
elif key_type in ("string", "text"):
if isinstance(v, str):