2010-12-05 3 views
0

J'ai un problème avec la couche déclarative Elixir; Je veux récupérer, pour chaque instance de mon modèle, les données, comme une colonne particulière suivante:query.values ​​échoue avec Elixir

File.query.values("column") 

La chose est, il ne fonctionne qu'avec les requêtes filtrées, avec la simple requête de l'exemple, il échoue avec cette erreur:

Could not locate a bind configured on SQL expression or this Session 

ce genre de ressemble à un bug dans Elixir, mais je ne pas trouver une solution de contournement, et peut-être que je totalement oublié quelque chose dans la façon dont il est censé fonctionner.

Répondre

2

Utilisez le formulaire

File.query.values(Table.column) 

et cela devrait fonctionner. Il renvoie un générateur, donc envelopper avec list() pour obtenir une séquence. Voir cet exemple sortie interactive:

>>> User.query.values('display_name') 
Traceback (most recent call last): 
    File "<console>", line 1, in ? 
[snip traceback] 
UnboundExecutionError: Could not locate a bind [ ... ] or this Session 
>>> User.query.values(User.display_name).next() 
(u'Vinay Sajip',) 

BTW ce n'est pas particulièrement un problème Elixir - la requête de retour de la propriété de requête d'une entité Elixir est un objet de requête standard SQLAlchemy. Notez la documentation SQLAlchemy pour Query.values ​​():

Retour un résultat qui donne de iterator tuples correspondant à la liste donné des colonnes

Questions connexes