2017-10-18 39 views
0

J'ai une application Flask et je suis en train d'obtenir une requête sqlalchemy en utilisant OR pour deux situations différentes comme cela, mais dans une requête:Utiliser ou avec Python Flask SQLAlchemy ne fonctionne pas

 csv_list_1 = csvTable.query.filter_by(file_uuid=file_uuid).filter_by(status="Validated") 

     csv_list_2 = csvTable.query.filter_by(file_uuid=file_uuid).filter_by(status="Also Validated") 

J'ai trouvé quelques réponses sur un débordement de pile mais en essayant les suivantes:

from sqlalchemy import or_ 
csv_list = csvTable.query.filter_by(file_uuid=file_uuid).filter_by(or_(status="Validated", status="Also Validated")) 

Je reçois:

SyntaxError: keyword argument repeated

Je ne sais pas où aller d'ici.

Répondre

2

Vos noms de colonnes ne doivent pas être des arguments mot-clé ici, il devrait être un chèque booléenne comme ceci:

csv_list = csvTable.query.filter_by(file_uuid=file_uuid)\ 
    .filter(or_(status == "Validated", status == "Also Validated")) 
+0

TypeError: filter_by() prend 1 argument de position, mais 2 ont reçu est la nouvelle erreur. J'ai modifié le lien pour enlever le _by et juste utiliser le filtre csv_list = csvTable.query.filter_by (file_uuid = file_uuid) \ .filter (ou_ (status == "Validé", statut == "Aussi validé")) et cela fonctionne . Je vous remercie. Pouvez-vous mettre à jour votre réponse et je vais accepter. –

+0

Oui, vous avez absolument raison, mis à jour. – wpercy

+0

Merci wpercy, me cognait la tête contre un mur alors! –