질문 추천에 추가 기능 구현해봤습니다.

사이트 추천 기능에 이미 추천한 글에는 '이미 추천한 글입니다'라는 메시지를 띄우려고 코드 작성해봤습니다.

from ..models import Question

from django.contrib.auth.decorators import login_required
from django.contrib import messages
from django.shortcuts import get_object_or_404, redirect

@login_required(login_url='common:login')
def vote_question(request, question_id):
    question = get_object_or_404(Question, pk=question_id)

>     voteonly = question.voter.all()
>     for votelist in voteonly :
>         if request.user == votelist :
>             messages.error(request, '이미 추천한 글입니다.')


    if request.user == question.author :
        messages.error(request, '본인이 작성한 글은 추천할 수 없습니다.')
    else:
        question.voter.add(request.user)
    return redirect('pybo:detail', question_id=question.id)

중간에 화살표 있는 부분인데 구현해보니 작동은 잘 된다만 코드를 잘 작성한건지 모르겠네요 ;ㅎㅎ

aq3480 346

M 2021년 10월 17일 8:30 오후

목록으로
1개의 답변이 있습니다. 1 / 1 Page

잘 작성하셨네요.
다음처럼 작성하셔도 되구요.

if request.user in question.voter.all():
    messages.error(request, '이미 추천한 글입니다.')

박응용

2021년 10월 18일 9:54 오후