1.6 장고 자습서에서 테스트에 대해 말한 후에 Choice
(이 모델에는 외래 키)이 없을 때 index.html
보기로 볼 수없는 Poll
을 볼 수 있습니다. 필터 만 저장 뭐죠에 적용 할 수 있기 때문에 나는이 도움이되지 밝혀졌다 polls/model.py
django 모델 유효성 검사를 제외한 제외 항목
def has_choices(self):
if self.choice_set.count() == 0:
return False
else:
return True
에 (...이 도움이 될 것으로 기대에서) 간단이를 확인 할 수 있도록 모델을 업데이트했습니다 데이터베이스에서 함수는 이 아니고이 아닙니다. 그래서 잠재적으로 유효성 검사 규칙을 만들려고 했으므로 Poll 객체가 저장 될 때마다 새로운 부울 객체 (model.BooleanField
)를 업데이트 할 것이므로이 쿼리에 사용할 데이터 열이있었습니다. 그러나, 그때 나에게 발생했습니다 그 Choice
개체가 저장됩니다, 아니 실제로는 선택을 추가했다 Poll
개체.
이 모든 것은, 내 poll/view.py
에 필터를 추가하는 방법을 생각해 볼 수 없습니다. 나는 Poll.objects.exclude(....
이 작동 할 것이라고 생각했지만 그때 그 결과에 매핑 된 외래 키가없는 Choices에 대한 쿼리에 참여하는 것이 복잡해졌습니다.
을 복잡하게하는 이상입니까? 아니면 이에 대한 우아한 해결책이 있습니까? 이 튜토리얼은 매우 쉬워 보였지만 1.6 용 튜토리얼보다 훨씬 복잡한 연습 문제를 겪고 있습니다.
모든 답변이 작동하지만 우아한 것은 항상 당연합니다! 나는 모델을 업데이트하고 객체를 재사용하는 팬이다. 그러나 모델을 업데이트해야 할 필요가 있다면 (함수가 아니라) 데이터베이스를 업데이트해야한다. 그러면 새로운 것을 할 수있는 한 그 일을 할 수있다. 열은 save()
이벤트마다 유효성을 검사합니다 (다시 Poll
또는 Choice
개체 일 것입니다!).
링크는 'Ideas for more tests'에서 구체적으로 https://docs.djangoproject.com/en/1.6/intro/tutorial05/입니다.
나는 믿는다. 더 좋은 이름은'has_choices' 일 것입니다. –