J'essaye d'écrire une requête en Python en utilisant le datastore L'API ne récupère pas plus de 5 noms d'élèves avec GPA supérieur et égal à 3,2 et l'année de naissance inférieure à 1998. Mais, il renvoie l'erreur: BadFilterError: invalid filter: Only one property per query may have inequality filters (<, >=, >, <=)..
Cependant, j'utilise la méthode mentionnée dans la documentation: https://cloud.google.com/appengine/docs/standard/python/datastore/queryclass#Query_filter https://cloud.google.com/appengine/docs/standard/python/datastore/queriesBadFilterError: filtre invalide: Une seule propriété par requête peut avoir des filtres d'inégalité (<, > =,>, <=)
code:
from google.appengine.ext import db
import datetime
import webapp2
class Student(db.Model):
first_name = db.StringProperty()
last_name = db.StringProperty()
gpa = db.FloatProperty()
birth_year = db.IntegerProperty()
class MainPage(webapp2.RequestHandler):
def get(self):
student1 = Student(first_name = 'Alex' , last_name = 'Karev', gpa = 3.5 , birth_year = 1996)
student1.put()
student2 = Student(first_name = 'Susannah', last_name = 'Walpole',gpa = 3.45, birth_year = 1997)
student2.put()
self.response.write('<p>Student1 entity, key = %s</p>'
% student1.key())
self.response.write('<p>Student2 entity, key = %s</p>'
% student2.key())
q = db.Query(Student)
q = Student.all()
q.filter('gpa >', 3.2)
q.filter('birth_year <', 1998)
results = q.fetch(5)
self.response.write('<p>Executing the query with fetch()...</p>')
for e in results:
self.response.write('<p>Found result: Last Name=%s'
% (e.last_name))
app = webapp2.WSGIApplication([('/', MainPage)], debug=True)
Et, quand je me sers GQL au lieu de datastore API, je reçois la même erreur. code:
q = Student.gql('WHERE gpa > 3.2 ' +'AND birth_year < 1998 ' +'ORDER BY gpa ASC, birth_year DESC')
double possible de [Filtre invalide: Une seule propriété par requête peut avoir des filtres d'inégalité (> =, <=, >, <)] (https://stackoverflow.com/questions/20568673/invalid-filter-only-one-property-per-query-may-have-inequality-filters) – mbrig
Aussi: https://stackoverflow.com/questions/13391818/badfiltererror-invalid-filter-only-one-property-per-query-may-have-inequality?rq=1 – mbrig
Oui, mais mon modèle est différent, et je les ai essayé et ça ne marche pas. – Beginner