我最近开始学习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
答案 0 :(得分:1)
只需添加一个字段即可跟踪用户上次投票的时间。
实施例,
last_vote_time = models.DateTimeField()
并在views.py
中,检查last_vote_time
是否与当前时间有24小时的差异。
这应该有所帮助。如果您需要一些代码,请告诉我。但是,我认为你将能够做到这一点。