Django限制投票到每天一次

时间:2015-08-11 04:32:13

标签: python django voting django-voting

我最近开始学习Django,所以它对我来说仍然有点混乱。

如果有人可以引导我访问链接或教程或帮助我弄清楚以下内容,我会非常高兴。

- 允许用户每天只投票一次

这是来自我的models.py

class YoungArtistShortlisted(models.Model):
    image = models.ImageField(upload_to=upload_file_path, blank=True, null=True)
    artist = models.CharField(max_length=200)
    age = models.CharField(max_length=200)
    created = models.DateTimeField(auto_now_add=True, db_index=True)
    modified = models.DateTimeField(auto_now=True, db_index=True)
    location = models.CharField(max_length=3, choices=LOCATION_CHOICES)
    likes = models.IntegerField(default=0)

    def __unicode__(self):
        return self.artist

这是我的views.py

def vote(request, youngartistshortlisted_id):
    p = get_object_or_404(YoungArtistShortlisted, pk=youngartistshortlisted_id)
    p.likes += 1
    p.save()

    return HttpResponseRedirect(reverse_lazy('youngartist:submission_vote', args=(p.id,)))

我正在使用应用程序在用户使用Facebook登录时自动创建用户。我完全不知道如何限制投票到每天一次,所以我非常感谢任何帮助,因为我似乎无法在谷歌上找到任何东西。谢谢!

我正在使用Django 1.8.2

1 个答案:

答案 0 :(得分:1)

只需添加一个字段即可跟踪用户上次投票的时间。

实施例,

last_vote_time = models.DateTimeField()

并在views.py中,检查last_vote_time是否与当前时间有24小时的差异。

这应该有所帮助。如果您需要一些代码,请告诉我。但是,我认为你将能够做到这一点。