🦧
初めてのdjangoアプリ作成 pollアプリケーションでのChoiceがないQuestionを表示させない方法
該当箇所
さらなるテストについて考える
Choiceを持たないQuestionを除外する方法について書きます。
コード
polls/view.py
# Create your views here.
class IndexView(generic.ListView):
template_name = 'polls/index.html'
context_object_name = 'latest_question_list'
def get_queryset(self):
return Question.objects.filter(
pub_date__lte=timezone.now()
).exclude(choice=None).order_by('-pub_date')[:5]
class DetailView(generic.DetailView):
template_name = 'polls/detail.html'
def get_queryset(self):
return Question.objects.filter(pub_date__lte=timezone.now()).exclude(choice=None)
exclude(choice=None)
で子テーブル(choice)を持たないものを除外出来ます。
これにより、
・choiceを持たないQuestion一覧が表示されない
・choiceを持たないQuestionの詳細ページが表示されない
ようになります。
注意
テストを書く際はquestionを持たないとページが表示されないのでチュートリアルのテストを改変する必要があります。
Discussion