Je souhaite interroger qu'un utilisateur peut sélectionner ou non un filtre, mais je ne souhaite pas créer 2 index (tables).AppEngine: requête datastore pour les enregistrements sans condition pour une propriété spécifique
value=self.request.get('filter')
if value:
results=Entity.all().filter('p1 =','v1').filter('p2 =','v2').filter('filter_property =',value)
else:
results=Entity.all().filter('p1 =','v1').filter('p2 =','v2')
Je pourrais commander la propriété filter_property. comme celui-ci dans la dernière ligne:
results=Entity.all().filter('p1 =','v1').filter('p2 =','v2').order('filter_property')
ce serait mauvais si je pouvais ou ne pouvait filtrer p1 (Propriété1) et p2 (property2). je voudrais faire quelque chose comme:
value = self.request.get('filter')
if value:
operator = '='
else:
operator = '!='
results=Entity.all().filter('p1 =','v1').filter('p2 =','v2').filter('filter_property '+operator,value).order('p4')
".order ('p4')" échouera BadArgumentError avec l'opérande =!.
que devrais-je faire?