당신의 접근 방식은 사용자가 복수 응답의 유스 케이스를 처리하는 정말 나쁜,이 같은 당신을 위해 작동합니다 :
ques = Question.objects.get(id=pk)
anstext = request.GET.get('ans_body',False)
if request.user.is_doctor:
if ques.answer_set.filter(user__id=request.user.id).exists():
messages.warning(request, "You cannot answer twice. Please use comment.")
else:
ans = Answer.objects.create(user=request.user, question=ques, ans_body=anstext)
messages.success(request, "Your answer has been posted successfully.")
else:
messages.warning(request, "You are not allowed to answer")
return redirect("question-detail", pk, ques.category.id)
를이 여전히 나쁜 방법이지만, 당신은 사용해야 forms
'ques'에 여러개의 답이 있습니까? 그리고 왜 응답 모델에'Question'' ForeignKey'가 이미있을 때'ManyToManyField'를 사용하고 있습니까? –
'ques.answer_set.all()'대신'ques.answers.all()'을 사용해서는 안됩니까? 그리고'user.is_doctor'는 메소드 또는 속성입니까? –
http://goo.gl/wpsq7s ... ques.answer_set.all()을 수행 할 때 @AamirAdnan의 설명 – madzohan