2012-04-30 20 views
12

Parece bastante trivial pero no puedo encontrar una respuesta válida a este problema.Asignar diferentes URL a la misma vista

Supongamos que tengo dos enlaces diferentes '/' y '/ home' y quiero que apunten a la misma vista. (Esto significa que si el usuario abre xyz.com o xyz.com/home, se mostrará la misma página).

En pirámide me trataron

config.add_route('home','/') 
config.add_route('home','home/') 

pero plantea la siguiente excepción

pyramid.exceptions.ConfigurationConflictError: Conflicting configuration actions 
    For: ('route', 'home') 

¿Cómo debo poner en práctica esta realidad?

Respuesta

21

es necesario agregar bajo diferentes nombres de ruta (que debe ser único por aplicación):

config.add_route('home','/') 
config.add_route('home1','home/') 

y luego configurar la misma vista para ambos:

config.add_view(yourview, route_name='home') 
config.add_view(yourview, route_name='home1') 

o, en el caso de usando el decorador @view_config, doble-decore su método:

@view_config(route_name='home') 
@view_config(route_name='home1') 
def your_method(request): 
    ..... 
Cuestiones relacionadas