2009-11-06 12 views
0

Je pensais juste si faire deux urls nommés le même produit des problèmes. Je l'ai essayé et il fonctionne. Ainsi, par exemple, j'ai une vue qui est capable de faire la pagination:Django plusieurs paramètres de vue et les URLs en double nommés

def info(request, page_num = 1)  

et je voudrais appeler les deux sens, comme:

/info 
/info/page/1 

donc je fait urls comme:

url(r'^info/$', 'views.info', name='info'), 
url(r'^info/(?P<page_num>)\d+)/$', 'views.info', name='info'), 

et cela semble fonctionner. Quelque chose ne va pas avec cela, ou devrais-je nommer différemment mon deuxième URL, par exemple info_paginated.

Répondre

0

Rien à redire et pour autant que je sache la pratique assez standard. Je sais que je le fais, surtout lorsque j'utilise des URL qui s'intègrent au code Javascript et que je n'ai pas le paramètre à utiliser lors du chargement de la page.

0

Il est parfaitement bien, mais vous pouvez définir page_num = None, puis

if page_num is None: 
    return redirect(reverse('info',{'page_num':1}) 

parce qu'un moteur de recherche yoursite.com/info voit et yoursite.com/info/1 et pense qu'ils sont contenus dupliqués, Si vous redirigez de l'un à l'autre, tout ira bien.