Djangoアプリのurls.pyファイルの構造化に問題があります。
私のプロジェクトは基本的な音楽プレーヤーアプリです。まず、[音楽]のリンクをクリックし、次に(たとえば)アーティストをクリックしてから、 Weezerなどのアーティストを選択します。次に、アプリは、 views.artist_name関数によってartist_name.htmlテンプレートにレンダリングされた、そのアーティストによるアルバムと曲のリストを表示します。
これまでのところ、アプリのナビゲーションでは、URLはhttp:// localhost / music / articles /Weezer/のようになります。
私の問題は次のURLのエンコーディングにあります。WeezerのアルバムTheBlueAlbumを選択した場合は、次のURLを返します:http:// localhost / music / articles / Weezer / The%20Blue%20Album。
これにより、 views.artist_album_title関数を使用してartist_album_title.htmlというテンプレートがレンダリングされます。代わりに、現在のページと同じviews.artist_name関数を使用して新しいページをレンダリングします。
起こっているように見えるのは、... Weezer / The%20Blue%20Album/の正規表現パターンが私のurls.pyファイルの関連するURLパターンと一致していないことです。Djangoを初めて使用する(そして正規表現の経験が最小限である)ため、この種のアプリでurls.pyファイルがどのように表示されるかを判断するのに苦労しています。
以下は、現在のurls.pyファイルです。私の問題についてのどんな助けも歓迎されるでしょう。みんなありがとう。
from django.conf.urls import patterns, include
from music.views import home, music, artists, artist_name, artist_album_title
# Uncomment the next two lines to enable the admin:
from django.contrib import admin
admin.autodiscover()
urlpatterns = patterns('',
(r'^admin/', include(admin.site.urls)),
(r'^$', home),
(r'^music/$', music),
(r'^music/artists/$', artists),
(r'^music/artists/([\w\W]+)/$', artist_name),
(r'^music/artists/([\w\W]+)/([\w\W]+)/$', artist_album_title),
)
views.pyのartist_album_title関数
def artist_album_title(request, album_title):
album_tracks = Track.objects.filter(album__title=album_title)
return render_to_response('artist_album_title.html', locals(), context_instance=RequestContext(request))