2017-01-04 6 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"), 

 Смежные вопросы

  • Нет связанных вопросов^_^