2013-06-26 2 views
0

Je suis en train de passer le follwoingComment passer variable d'en rendre web.py à def dans mako

return render('warps.html', query=query) 

Pour un modèle mako et avoir lu la requête avec le follwoing.

<%def name="warps()"> 
    <% 
    warp = db.warps.find('player' : ${query}).sort(u'player', 1) 
    print warp 
    %> 
    %for x in warp: 
     ${x['player']},&nbsp;&nbsp;${x['x_origin']},${x['y_origin']}&nbsp;&nbsp;&nbsp;${x['x_dest']},${x['y_dest']}<br /> 
    %endfor 
</%def> 

Le ${query} fonctionne très bien en dehors du bloc <% -- %> mais à l'intérieur il doit avoir « » autour d'elle. Donc, si je l'imprime, j'obtiens ${query} comme une chaîne au lieu de la variable que ${query} est supposé représenter.

Existe-t-il un moyen de passer une variable de rendu de web.py dans le python sur un modèle mako?

Répondre

0

Il devrait être:

warp = db.warps.find('player' : query).sort(u'player', 1) 

BTW, vous ne devriez pas mettre logique dans le modèle.

+0

Merci :-) - Lol, je pensais que c'était peut-être ça mais je m'étais déjà couché et j'étais trop fatigué pour me remettre à l'essai. J'utilise la logique dans le modèle car pour l'instant je ne sais pas comment retourner les résultats d'une boucle For du script web.py. Il renvoie le premier résultat mais sort après un. J'utilise un formulaire pour sélectionner la valeur de la variable de requête pour renvoyer juste ce qui a été sélectionné, pas la collection entière de warps. Quelle serait la meilleure façon de faire cela? – Xariec