3-16번의 1번 과제 질문입니다.

answer_views.py 에서

question = get_object_or_404(Question, pk=question_id)

를 통해서 question을 받아오고

question에 해당하는 answer를 모두 얻어와 render 해주고 싶은데 어떻게 얻어올 수 있나요?

answer_list = question.answer_set

해당방식으로는 받아올수 없어서 질문드립니다.

dolgogae 55

M 2021년 10월 7일 3:49 오후

question.answer_set 은 잘 동작할텐데요? 동작하지 않는 코드를 보여주세요. - 박응용님, 2021년 10월 8일 1:35 오전 추천 , 대댓글
@박응용님 ```python @login_required(login_url='common:login') def answer_create(request, question_id): """ pybo 답변등록 """ page = request.GET.get('page','1') question = get_object_or_404(Question, pk=question_id) if request.method == "POST": form = AnswerForm(request.POST) if form.is_valid(): answer = form.save(commit=False) answer.create_date = timezone.now() answer.question = question answer.author = request.user answer.save() return redirect('{}#answer_{}'.format( resolve_url('pybo:detail', question_id=question.id), answer.id)) else: form = AnswerForm() paginator = Paginator(question.answer_set, 3) page_obj = paginator.get_page(page) max_index = len(paginator.page_range) context = {'question': question, 'answer_list': page_obj, 'form': form} return render(request, 'pybo/question_detail.html', context) ``` views.py 일부 해당 소스 코드입니다. 위에서 answer_set을 render에 넣어서 templates/pybo/answer_detail.html로 보내줘 ```python <h5 class="border-bottom my-3 py-2">{{answer_list.count}}개의 답변이 있습니다.</h5> ``` 을 했지만 answer_list.count는 아무 것도 받아오질 못합니다... - dolgogae님, 2021년 10월 8일 7:44 오전 추천 , 대댓글
+1 @dolgogae님 답변의 갯수는 페이징이 적용된 객체의 갯수로 하면 1페이지의 갯수만 나오기 때문에 일단 사용하지 않는 것이 좋습니다. 아마 page_obj 에는 count 속성이나 함수가 없을 것 같습니다. 따라서 answer_count = question.answer_set.count() 로 구한 후 그 값을 템플릿에 전달해 보세요. - 박응용님, 2021년 10월 8일 8:41 오전 추천 , 대댓글
@박응용님 위 views.py 소스코드에서 answer_list = question.answer_set() context = {'question': question, 'answer_list': answer_list, 'form': form} 다음과 같이 수정하고 html파일에서 {% for answer in answer_list %} <a name="answer_{{ answer.id }}"></a> 단순히 이것도 받아오질 못하는데 어떤 부분에서 잘못된걸까요...? (html에서 question.answer_set을 쓰면 잘 받아와집니다) - dolgogae님, 2021년 10월 8일 11:01 오전 추천 , 대댓글
+1 @dolgogae님 answer_list = question.answer_set() 대신 answer_list = question.answer_set.all() 로 해보세요. - 박응용님, 2021년 10월 8일 2:06 오후 추천 , 대댓글
목록으로