我在Django中有两个url模式:
urlpatterns += patterns('',
url(r'^(?P<song_name>.+)-(?P<dj_slug>.+)-(?P<song_id>.+)/$', songs.dj_song, name='dj_song'),
url(r'^(?P<song_name>.+)-(?P<artist_slug>.+)-(?P<song_id>.+)/$', songs.trending_song, name='trending_song'),
)
当我访问第一个模式的URL时,它会正确打开它。但是,如果我尝试访问第二个模式的URL,它会尝试再次访问第一个视图。变量song_name
,dj_slug
,artist_slug
是字符串,song_id
是整数。
具有类似网址结构的此类案例的网址格式应该是什么?
答案 0 :(得分:1)
两个网址都使用相同的正则表达式。我删除了组名并得到:
url(r'^(.+)-(.+)-(.+)/$', songs.dj_song, name='dj_song'),
url(r'^(.+)-(.+)-(.+)/$', songs.trending_song, name='trending_song'),
当然django使用第一场比赛。
您应该为不同的视图使用不同的网址。例如,将前缀添加到第二个URL:
url(r'^trending/(?P<song_name>.+)-(?P<artist_slug>.+)-(?P<song_id>.+)/$',
songs.trending_song, name='trending_song'),