12

些細なことのようですが、この問題に対する有効な答えを見つけることができません。

2つの異なるリンク「/」と「/home」があり、それらが同じビューを指すようにしたいとします。(これは、ユーザーがxyz.comまたはxyz.com/homeのどちらを開いても、同じページが表示されることを意味します)。

ピラミッドで試してみました

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

しかし、それは次の例外を引き起こします

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

これを実際にどのように実装する必要がありますか?

4

1 に答える 1

24

異なるルート名で追加する必要があります(アプリケーションごとに一意である必要があります)。

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):
   ..... 
于 2012-04-30T12:37:47.463 に答える