如何实施投票验证系统?

时间:2012-12-26 17:48:13

标签: django validation voting voting-system

我正在尝试创建一个简单的限制系统,这样用户就不能在简单的民意调查中投票两次(大多数情况下就像django教程中的示例民意调查一样)我似乎无法找到一种方法我喜欢。

我最喜欢的是在Choice模型中使用User FK并在那里添加用户,如下所示:

models.py

vote = models.ForeignKey(User)

views.py

def vote(request):
    # Some validations and stuff...
    vote.add(request.user)

这样我可以将选票限制为1,但我想将其限制为每次投票1次。想象一下这种情况:你有一个有5个选择的民意调查,通过这个验证,用户只能投票1次,但每次选择1次,这意味着他/她可以投票5次。

您建议制作一个每次投票仅允许1票的系统?我需要模型或其他东西我会粘贴它们,这是一个开源项目。

1 个答案:

答案 0 :(得分:2)

在您的民意调查模型中,向用户添加ManyToManyField,表示哪些用户已在哪些民意调查中投票。对于要显示的每个轮询,请检查此轮询是否在当前用户的轮询列表中。如果是,请不要让他们投票。

当当前用户在投票中投票时,将该投票添加到当前用户的民意调查列表中。