2012-04-30 2 views
12

Это кажется достаточно тривиальным, но я не могу найти верный ответ на эту проблему.Отображать разные URL-адреса в одном и том же виде

Предположим, у меня есть две разные ссылки '/' и '/ home', и я хочу, чтобы они указывали на один и тот же вид. (Это означает, будет ли пользователь открывать xyz.com или xyz.com/home, будет отображаться одна и та же страница).

В пирамиде я попытался

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

Но возникает следующее исключение

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

Как я на самом деле осуществить это?

ответ

21

Вам необходимо добавить их под разными названиями маршрутов (они должны быть уникальными для каждого приложения):

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

, а затем настроить один и тот же вид для обоих:

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

или, в случае используя @view_config декоратор, дважды украсьте свой метод:

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