2010-11-15 8 views
1

Quand je fais:problème lors de l'interrogation la base de données

channel = session.query(Channel).options(eagerload("items")).filter(Channel.title == title) 

je reçois cette erreur:

TypeError: 'bool' object is not callable 

Si je débarrasse de options(eagerload("items")), il fonctionne correctement.

Une idée?

Merci d'avance!

+2

Juste deviner, mais avez-vous une variable 'eagerload' quelque part qui est un booléen? Cela pourrait en être la cause directe. Sinon, il serait utile d'obtenir un peu plus de stacktrace et/ou de code. – Wolph

+0

Oui, c'est ça, je viens de réaliser que je déclare la variable eagerload à un moment donné. Merci! – bribon

Répondre

0

Le filtrage SQLAlchemy fonctionne avec une surcharge de l'opérateur sur les objets de colonne. Cependant, vous ne faites pas référence à l'objet colonne, mais à la propriété value de la table. Ainsi, au lieu de

Channel.title == title 

qui est un objet 'bool', vous avez besoin

Channel.c.title == title 

qui donne un objet spécifique SLQAlchemy.

Questions connexes