2012-04-30 8 views
12

これは些細なことだと思われますが、この問題に対して有効な答えが見つかりません。別のURLを同じビューにマップする

「/」と「/ home」という2つの異なるリンクがあり、同じビューを指しているとします。 (これは、ユーザーがxyz.comまたはxyz.com/homeを開くかどうかを示すもので、同じページが表示されます)。ピラミッドで

私は

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

をしようとしたが、それは私が実際にこれを実装する必要がありますどのように次の例外に

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

を発生させますか?の場合には、

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

か:

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

をして、両方に同じビューを設定します。

答えて

21

あなたは(彼らはアプリケーションごとに一意である必要があります)別のルート名の下にそれらを追加する必要があります@view_configデコレータを使用して、方法を二重に飾ります。

@view_config(route_name='home') 
@view_config(route_name='home1') 
def your_method(request): 
    ..... 
関連する問題