Отображать различные 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')
Как мне это реализовать?
Ответы
Ответ 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):
.....