추천기능 관련하여 궁금한 사항을 올립니다.

안녕하세요 저는 인천에서 혼자 django 공부중인 학생입니다. ^^

먼저

교재 : 점프 투 장고
목차 : [ 3장 파이보 서비스개발 - 3-11 추천 ]
해당 위치 온라인 교재 url : https://wikidocs.net/71791
위 해당 목차 부분을 공부하던 중 추가기능을 구현하고 싶어서 이렇게 질문을 올려보아요. ^^

교재는 ManyToMany 필드를 이용해서 '추천기능'을 구현하는 방법을 가르쳐 줍니다.
그런데. ^^;;; 추천을 '취소'하는 기능은 전혀 교재에 없습니다. ㅎㅎㅎ
일반적으로 대부분의 사이트에서는 추천을 했다가, 변심등에 의해서 추천한 것을 취소하는 것이 일반적인데요 ^^;;

일단 추천을 할 수 있도록 구현한 기능코드는 아래와 같습니다.
@login_required(login_url='common:login')
def question_vote(request, question_id):
question = get_object_or_404(Question, pk=question_id)
if request.user == question.author:
messages.error(request, '본인이 작성한 글은 추천할수 없습니다')
else:
question.voter.add(request.user)
return redirect('pybo:detail', question_id=question.id)

그리고 위 코드 중에서 아래 코드가 핵심입니다.
question.voter.add(request.user)
즉, .add() 함수로 곧바로 추가해버리는 건데요.
.add() 의 반대 기능인 함수를 모르겠다는 것입니다. ㅠㅠ
최선을 다해 찾아 보았는데.
.remove() 이 함수를 이용하는 것 아닌가... 싶습니다. ㅠ
이렇게 저렇게 시도해봐도 성공을 못하고 있어서 이렇게 글 남겨봅니다.

감사합니다.

ssagghnnam 72

2022년 9월 11일 2:57 오전

question.voter.remove(request.user) 될거 같은데요? - 박응용님, 2022년 9월 11일 3:01 오후 추천 , 대댓글
목록으로