2010-07-03 39 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

是真的!作品!谢谢!:) – dana 2010-07-03 11:01:24

相关问题