Подтвердить что ты не робот

Отображать различные 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')

Как мне это реализовать?

4b9b3361

Ответ 1

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

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):
   .....