2017-10-24 11 views
0

私はdjangoの初心者です。そのバージョンは1.11.6です。私が使用するpythonのバージョンは3.6です。 一般的なビューを調べていますが、generic.ListViewは値を返しません。一般的なビューは値を返しません

views.py 


class IndexView(generic.ListView): 
    template_name = 'polls/index.html' 
    context_object_name = 'Latest_question_list' 
    def get_queryset(self): 
     return Question.objects.order_by('-pub_date')[:5] 


urls.py 

from django.conf.urls import url 

from . import views 

app_name = 'polls' 
urlpatterns = [ 
    url(r'^$', views.IndexView.as_view(), name='index'), 
    url(r'^(?P<pk>[0-9]+)/$', views.DetailView.as_view(), name='detail'), 
    url(r'^(?P<pk>[0-9]+)/results/$', views.ResultView.as_view(), name='results'), 
    url(r'^(?P<question_id>[0-9]+)/vote/$',views.vote, name='vote'), 
] 

上記のコードの出力は次のとおりです。私ができる、残念ながら

{% if latest_question_list %} 


    <ul> 
     {% for question in latest_question_list %} 
     <li><a href="{% url 'polls:detail' question.id %}/">{{ question.question_text }}</a></li> 
     {% endfor %} 
    </ul> 
{% else %} 
<p>no polls are available</p> 
{% endif %} 
{% load static %} 
<link rel="stylesheet" type="text/css" href="{% static 'polls/style.css' %}"/> 

何の世論調査では、HTMLページは、次のコードが含まれている

用意されていませんエラーの理由は分かりません。

答えて

3

問題は、ビュー内にcontext_object_name = 'Latest_question_list'(大文字のL)があり、テンプレートの{% if latest_question_list %}(すべて小文字)と一致しないことです。

ビューまたはテンプレートのいずれかが一致するように変更します。 PEP 8スタイルのガイドではlatest_question_listをお勧めしますので、ビューを変更します:

class IndexView(generic.ListView): 
    template_name = 'polls/index.html' 
    context_object_name = 'latest_question_list' 
関連する問題