"장고 실시간 추천"의 두 판 사이의 차이
둘러보기로 가기
검색하러 가기
(→개요) |
|||
1번째 줄: | 1번째 줄: | ||
== 개요 == | == 개요 == | ||
추천기능은 앞서 [[장고 추천기능]]에서 만들었다. 다만, 매번 새로고침 해서 데이터를 갱신했는데, 이번엔 AJAX를 이용한 통신으로 추천을 실시간 반영하는 방법을 다루고자 한다. | 추천기능은 앞서 [[장고 추천기능]]에서 만들었다. 다만, 매번 새로고침 해서 데이터를 갱신했는데, 이번엔 AJAX를 이용한 통신으로 추천을 실시간 반영하는 방법을 다루고자 한다. | ||
+ | |||
+ | 기본적으로 [[장고 추천기능]] 문서에서 사용한 코드에서 변형을 가한다. | ||
== 모델 변형 == | == 모델 변형 == |
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")