Ich beginne Django mit dem offiziellen Tutorial
https://docs.djangoproject.com/en/1.9/intro/tutorial05/#ideas-for-more-testsargs mit filter() in Django
Um zu erfahren, die zu folgenden Aktionen ausführen:
es albern ist, dass Fragen auf der Website veröffentlicht werden können, dass haben keine Auswahlmöglichkeiten. Also, unsere Ansichten könnten dies überprüfen und solche Fragen ausschließen. Unsere Tests würden eine Frage ohne Optionen erstellen und dann testen, dass es nicht veröffentlicht wird, sowie eine ähnliche Frage mit Auswahlmöglichkeiten erstellen und testen, dass es veröffentlicht wird.
Ich habe , choice_set__count__gt=0
-filter()
- will nur auf jede Frage die Anzahl der Möglichkeiten, um sicherzustellen, entspricht, ist größer als 0 ist, dann werfen die Ausnahme
FieldError at /polls/
Cannot resolve keyword 'choice_set' into field. Choices are: choice, id, pub_date, question_text
vollständige Code
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) Ich frage mich, warum die Ausnahme hier passiert ist? Irgendeine Möglichkeit, es zu korrigieren?
(2) Laut der Ausnahme scheint jedes Frageobjekt eine Auswahlmöglichkeit zu haben, woher kommt dieses Feld?
(3) Gibt es eine bessere Lösung, um das Grundproblem zu lösen? Ich denke, dass die Änderung der Frageklasse ein guter Weg ist, das eigentliche Problem zu lösen.
Modelle von here
Können Sie den Beitrag mit Modellen aktualisieren? – Abhinav
@AbhinavI Modelle von https://bpaste.net/show/56d83049dd33 – iMath