2017-02-12 10 views
0

たとえば、同じルートを使用してフォームを送信し、そのID番号に基づいてフォームのコンテンツを表示したいとします。PyramidルートのオプションのURLパラメータ

私は再照合パラメータを考えた:

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

は十分だったが、それは動作しません。メソッドPOSTが終了すると、結果を示すページがロードされますが、404エラーがスローされます。 http://docs.pylonsproject.org/projects/pyramid/en/latest/narr/urldispatch.html#route-pattern-syntaxから

+0

アスタリスクは括弧の中に入れてください。 – webjunkie

答えて

1

idパラメータが必要とされるrequest.route_url('poll', id='5')経由でURLを生成するとき、あなたはそれを離れることができないことを

config.add_route('poll', '/poll/{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')を使用できるようになります。

関連する問題