2010-01-13 14 views
0

Dans ma webapp, il y a beaucoup d'erreurs ou d'autres messages qui montrent juste un modèle qui est très proche de l'URL. À l'heure actuelle, j'ai une demi-douzaine cartographes statiques comme celui-ci:Dynamic direct_to_template

(r'^/message/foo/$', 'direct_to_template', {'template': 'message/foo.html'}), 
(r'^/message/bar/$', 'direct_to_template', {'template': 'message/bar.html'}), 

est-il un moyen intégré je peux brancher /message/*/ pour montrer le modèle message/*.html?

Répondre

4

C'est assez facile. Faites comme ceci:

(r'^/message/(?<name>\d+)/$', 'your_app.views.direct_to_template') 

et:

def direct_to_template(name): 
    return render_to_response('message/%s.html' % name) 
+0

que je dois faire cela dans quelques endroits, mais l'enfer, cela est plus facile que de passer plus de temps à la recherche d'une solution plus élégante. Merci! – Oli

+1

mais vous devriez vérifier ce que «nom» contient avant de l'utiliser;) dans les autres cas, vous pouvez être très surpris :) – bluszcz

+0

Eh bien, il devrait :-) Mais je ne voulais pas fournir des trucs de sécurité, juste une solution simple son problème :-) – gruszczy