J'ai une action qui ressemble à ceci:Comment spécifier une valeur de paramètre par défaut pour une action Pylons?
class ArticleController(BaseController):
def all(self, page, pagesize):
Je veux être en mesure d'accéder /article/all/{page}/{pagesize}
, avec des valeurs par défaut pour page
et pagesize
.
J'ai essayé de définir les valeurs par défaut dans la méthode d'action, mais apparemment les deux page
et pagesize
ont la valeur par défaut si je définis uniquement une valeur page
.
J'ai aussi essayé quelque chose comme ça, mais ça ne marche pas non plus:
map.connect('/article/all/{page}/{pagesize}', controller='article',
action='all')
map.connect('/', controller='article', action='all', page=0, pagesize=5)
map.connect('/article/all/', controller='article', action='all', page=0,
pagesize=5)
En fait, dans ce cas, cela fonctionne quand j'accéder /
ou /article/all/
. Mais cela ne fonctionne pas avec /article/all
(même lorsque je supprime le suivi /
dans l'itinéraire en conséquence). En regardant la documentation de Routes, il semble que les valeurs par défaut ne devraient pas fonctionner du tout dans ce cas, donc c'est peut-être un comportement type ou indéfini.
Quoi qu'il en soit, ma question est, comment puis-je all()
d'être appelé avec les valeurs par défaut pour page
et pagesize
lors de l'accès /article/all
et /article/all/42
?
(je sais que je pourrais utiliser la place chaîne de requête map.redirect()
aussi-t genre de truc, mais je ne veux pas vraiment rediriger..)
Apparemment, avoir plusieurs URL pour la même ressource est considérée comme une mauvaise pratique (http://pylonsbook.com/en/1.1/urls-routing-and-dispatch. html # route-minimisation). Donc je suppose que je m'en tiendrai à 'redirect()'. –
Bizarre ça ne marche pas pour toi. Il fonctionne parfaitement ici avec un nouveau projet Pylons 1.0. Aussi je suppose que tu as raison avec la redirection. –