2017-07-05 16 views
1

人。私は初心者のDjango開発者ですので、基本的な質問があれば申し訳ありません。Djangoは要求されたビューをレンダリングしません

ムービーのリストを表示するWebページがあり、各ムービーに詳細ビューがありますが、何らかの理由で詳細ビューがレンダリングされません。

#views.py 

def index(request): 
    latest_movies = Movie.objects.order_by('-movie_id')[:5] 

    template = loader.get_template('ytsmirror/index.html') 
    context = { 
     'latest_movies' : latest_movies, 
    } 

    return HttpResponse(template.render(context, request)) 

def detail(request, movie_id): 

    movie = Movie.objects.get(movie_id=movie_id) 
    template = loader.get_template('ytsmirror/details.html') 

    context = { 
     'movie' : movie, 
     'plot': 'Lorem impsum', 
    } 

    return HttpResponse(template.render(context, request)) 

そして、私のurls.py

#urls.py 

from django.conf.urls import url 

from . import views 

app_name = 'ytsmirror' 
urlpatterns = [ 
    url(r'$', views.index, name='index'), 
    url(r'^(?P<movie_id>\d{4})$', views.detail, name='detail'), 
] 

私が到達しよう/ ytsmirror/4200 /たとえば、私はすべてのエラーを取得しないとDjangoは明らかに正しいURLパターンに到達したが、」doesnの詳細ビューをレンダリングすると、変更なしでインデックスビューに残ります。

私は間違っていますか?ありがとう。

+1

url(r '$'、views.index、name = 'index')を次のように置き換えてください: url(r '^ $'、views.index、name = 'index' ) – KePe

+0

それは働いた。ありがとう!何が起こったのか説明できますか? – AirieFenix

+1

@pythad説明は正しいです。 – KePe

答えて

2

url(r'$', views.index, name='index')は文字列の末尾と一致しますので、基本的には任意のURLに一致します。そのため、コードは機能しません。あなたはそれが唯一の空のURLと一致するようにurl(r'^$', views.index, name='index')url(r'$', views.index, name='index')を交換する必要が

^は、文字列

$文字列の最後に位置を主張する、または末尾に行終了直前の開始位置をアサート文字列の場合

関連する問題