장고 실시간 추천

Sam (토론 | 기여)님의 2021년 6월 25일 (금) 10:29 판 (→‎개요)

1 개요

추천기능은 앞서 장고 추천기능에서 만들었다. 다만, 매번 새로고침 해서 데이터를 갱신했는데, 이번엔 AJAX를 이용한 통신으로 추천을 실시간 반영하는 방법을 다루고자 한다.

기본적으로 장고 추천기능 문서에서 사용한 코드에서 변형을 가한다.

2 모델 변형

@login_required(login_url='membership:login')
def vote_question(request, question_id):
    question = get_object_or_404(Question, pk=question_id)
    question_like, question_like_created = question.like_user.get_or_create(user=request.user)
    #위 함수가 어떤 기능인지 제대로 파악해야겠다.
    #question.voter.add(request.user)
    if not question_like_created:  # 생성된 게 아닌 경우.
        question_like.delete()  # 삭제한다.
    #기존의 이 줄을 아래로 대체한다. return redirect('pool:detail', question_id=comment.answer.question.id)
    #ajax를 구현하기 위해 json으로 반환한다.
    return HttpResponse(json.dumps(context), context_type="application/json")