2017-02-12 21 views
0

Например, я хочу использовать тот же маршрут для отправки формы и отображения содержимого форм на основе их идентификационного номера.Дополнительный параметр URL-адреса на маршруте Pyramid

Я думал rematched параметр:

config.add_route('poll', '/poll/{id}*') 

было достаточно, но он не работает. Когда метод POST заканчивается, я хочу, чтобы он загружал страницу, показывающую результат, но он выдает ошибку 404.

+0

Я думаю, что звездочка должна зайти в скобки. – webjunkie

ответ

1

От http://docs.pylonsproject.org/projects/pyramid/en/latest/narr/urldispatch.html#route-pattern-syntax:

config.add_route('poll', '/poll/{id:.*}') 

Обратите внимание, что при создании URL с помощью request.route_url('poll', id='5') требуется параметр id, вы не можете оставить его. Вы можете решить эту проблему с pregenerator:

def pregen(request, elements, kw): 
    kw.setdefault('id', '') 
    return elements, kw 
config.add_route('poll', '/poll/{id:.*}', pregenerator=pregen) 

Это позволит использовать request.route_url('poll'), а также request.route_url('poll', id='5').