2012-03-16 19 views
1

で作業していないが、私のURLconfです:のURLconfは、ここで類似したURL

urlpatterns = patterns('', 
    url(r'^new_player/$', new_player, name="new_player"), 
    url(r'^new_player/player_added/$', player_added, name="player_added"), 
    url(r'^(\d+)/new_avatar/$', new_avatar, name='new_avatar'), 
    url(r'^(?P<user_name>[-\w]+)/new_game/$', new_game, name='new_game'), 
    url(r'^$', 'django.views.generic.list_detail.object_list', { 'queryset': Player.objects.all(),'extra_context': {'players' : Player.objects.annotate(total_amount_won=Sum('avatar__games__profit'))}}, 'stakeme_player_list'), 
    url(r'^(?P<real_name>[\w|\W]+)/', usernames_by_player), 
    url(r'^(?P<user_name>[\w|\W]+)/', avatars_by_username), 
) 

上に書いたよう私は最後の二つの順序を逆にした場合、url(r'^(?P<real_name>[\w|\W]+)/', usernames_by_player),は、それが関連付けられていたテンプレートを表示するが、url(r'^(?P<user_name>[\w|\W]+)/', avatars_by_username),意志404

ますURLは、avatars_by_usernameの代わりにusernames_by_playerの代わりに表示されます

同様のURLパターンのために、これは問題を引き起こす可能性がありますが、誰かがどうしたら解決してください?

答えて

2

これらのURLは、定義した順序で検索されます。したがって、この行url(r'^(?P<real_name>[\w|\W]+)/', usernames_by_player)はリクエストURLからすべての入力を取得します。これらのURLは次のように区別する必要があります。

url(r'^realname/(?P<real_name>[\w|\W]+)/', usernames_by_player), 
url(r'^username/(?P<user_name>[\w|\W]+)/', avatars_by_username), 

これが正しい方向につながることを願っています。

+0

これは助けとなり、実際に私が頭に向かう方向でした。しかし元のフォーマットを維持する方法はありますか? –

+0

「元のフォーマット」とまったく同じ意味ですか? – Jingo

+0

理想的には、私は自分のURLを私がOPで持っているようにしたいと思います。たとえば、私のユーザ名がDan123であり、私の本名がDanielであれば、/ project/Daniel /は私を 'usernames_by_player'と/ project/Dan123 /に指名して' avatars_by_username'を指すようにしたいと思います。本当の名前はユーザー名と同じではないと仮定していると思います。 –

関連する問題