2017-01-04 11 views
0

テンプレートからオプションのパラメータを使用してビューを呼び出そうとしていますが、例外がスローされます。テンプレート内からビューを呼び出せません

これが私の見解です:

def page(request, page_id=1): 
    page = Page.objects.filter(pk=page_id).first() 
    context = { 
     'page': page, 
     'answers': Answer.objects.filter(source_page_id=page.id) 
    } 
    return render(request, 'page.html', context) 

そして、ここではpage.htmlテンプレートからそれを呼び出すために私の試みです:

<ul> 
    {% for answer in answers %} 
     <li><a href="{% url 'page' answer.target_page_id %}">{{ answer.choice_text }}</a></li> 
    {% endfor %} 
</ul> 

しかし、次のようにいくつかの理由で、例外が、スローされます。

Reverse for 'page' with arguments '(1,)' and keyword arguments '{}' not found. 1 pattern(s) tried: ['$$'] 

ここには何が起こっていますか?前もって感謝します。

答えて

-1

は、それに変更してください:

def page(request, pk): 
    page = Page.objects.get(pk=1).first() 
    context = { 
     'page': page, 
     'answers': Answer.objects.filter(source_page_id=page__id) 
    } 
    return render(request, 'page.html', context) 
1

あなたのurls.pyであなたのビューに入力パラメータを定義する必要があります。

これは間違っている:

url(r"^page/$", page, name="page"), 

これは権利であります:

url(r"^page/(?P<page_id>.*)/$", page, name="page"), 
関連する問題