2010-07-03 2 views
0

나는 약간의 투표 방식을 사용하고 있습니다. 답변을 투표 할 수는 있지만 한 번만 투표 할 수 있습니다. 나는 투표를위한 양식을 만들지 않았는데 누군가가 투표를 제출하면 투표를 작성합니다 (링크에 액세스). 내 상황에서 한 번만 투표 할 수있는 방법은 무엇입니까? 대신 양식을 작성하는 것이 좋을까요? 내 코드 :Django는 한 번만 사용자 ID로 개체를 만듭니다.

def voteup(request,classname, id): 
    answer = Answer.objects.get(pk = id) 
    c = Classroom.objects.get(classname = classname) 
    voted_up_by = Membership.objects.filter(classroom = c).get(member = request.user) 
    vote = VoteUpAnswer.objects.create(answer = answer, voted_up_by = voted_up_by) 
    url = reverse('inside_classroom', kwargs={'classname': classname}) 
    return HttpResponseRedirect(url) 

감사합니다!

답변

3

나는 voted_up_by의 종류가 투표 한 사용자를 정의한다고 가정합니다. 그것이 사실이라면 투표가 아직 추가되었는지 확인할 수 있습니다. 예 :

try: 
    VoteUpAnswer.objects.get(voted_up_by = voted_up_by) 
except VoteUpAnswer.DoesNotExist: 
    # No vote from "voted_up_by" exists 
    VoteUpAnswer.objects.create(answer = answer, voted_up_by = voted_up_by) 
else: 
    # User already voted. Redirect to an error page, for example. 
+0

True! 공장! 감사!:) – dana

관련 문제