django - 如何实现投票验证系统?

标签 django validation voting voting-system

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

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

模型.py

vote = models.ForeignKey(User)

View .py

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

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

对于创建一个每次投票仅允许 1 票的系统,您有何建议?如果您需要模型或其他东西,我将粘贴它们,这是一个开源项目。

最佳答案

在您的 Poll 模型上,向 User 添加 ManyToManyField,表示哪些用户在哪些民意调查中投票。对于要显示的每个民意调查,请检查该民意调查是否位于当前用户的民意调查列表中。如果是,则不允许他们投票。

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

关于django - 如何实现投票验证系统?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14044162/

相关文章:

javascript - 在 Laravel 中验证多个用户生成的标签

java - 在java中查找括号字符串的有效性

xmpp - "Voting"XMPP协议(protocol)机制

SQL:计算具有每小时滚动投票限制的唯一投票

ajax - CORS:当凭据标志为真时,无法在 Access-Control-Allow-Origin 中使用通配符

python - celery 自动重新加载不起作用

Django:如何强制翻译成模板内的给定语言?

javascript - 视频上传验证不起作用

django - django中的重复对象,也重复子对象(相关对象)

php - 按总票数排序结果