に、私は次の操作を行うためには、公式チュートリアル
https://docs.djangoproject.com/en/1.9/intro/tutorial05/#ideas-for-more-tests引数()ジャンゴ
とジャンゴを学び始める:
それは質問がそのサイト上で公開することができることを愚かです選択肢はありません。 したがって、我々の見解でこれを確認し、そのような 質問を除外することができます。私たちのテストでは、選択肢なしの質問が作成され、 テストが公開されていないことがテストされ、同様の質問 が選択肢とともに作成され、公開されていることがテストされます。
は私が, choice_set__count__gt=0
filter()
に追加 - ちょうど、それぞれの質問に対応する選択肢の数を確保したい0よりも大きいが、その例外
FieldError at /polls/
Cannot resolve keyword 'choice_set' into field. Choices are: choice, id, pub_date, question_text
完全なコードを捨てる
class IndexView(generic.ListView):
template_name = 'polls/index.html'
context_object_name = 'latest_question_list'
def get_queryset(self):
"""Return the last five published questions."""
return Question.objects.filter(
pub_date__lte=timezone.now(), choice_set__count__gt=0
).order_by('-pub_date')[:5]
(1)なぜ例外がここで起こったのだろうか?それを修正する方法はありますか?
(2)例外によると、各質問オブジェクトには選択肢があり、このフィールドはどこから来たのでしょうか?
(3)根本問題を解決するためのより良い解決策はありますか?私は質問クラスを修正することが実際の問題を解決する良い方法だと思います。あなたはこの種のもののためにannotate
を使用することができますhere
投稿をモデルで更新できますか? – Abhinav
@AbhinavIモデル(https://bpaste.net/show/56d83049dd33) – iMath