La bonne façon d'utiliser un ndb.OR est comme ceci:Comment utiliser ndb.OR dans une boucle?
q = News.query(ndb.OR(News.source == 'GRD', News.source == 'IND'))
qui se traduit par un OU-filtre.
requête (type = 'Nouvelles', filtres = OR (FilterNode ('source', '=', 'drachmes'), FilterNode ('source', '=', 'IND')))
Mais comment faire cela en boucle?
Quand j'essaie ceci:
q = News.query()
for source in sources:
q = q.filter(ndb.OR(News.source == source))
Il devient un ET-filtre:
requête (type = 'Nouvelles', filtres = ET (FilterNode ('source', '=' «GRD), FilterNode ('source', '=', 'IND')))
Merci, je pense que vous vouliez dire 'q = News.query (ndb.OR (News.source.IN (sources)))' – Houman
@Houman doute, ou besoin de 2 paramètres –
@Houman 'IN' est effectivement mis en œuvre comme une série de «OR» (voir citation ci-dessus!). – tx802