Джанго ограничить голосование один раз в день

Я недавно начал изучать 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. Я абсолютно не знаю, как ограничить голосование одним разом в день, поэтому я очень ценю любую помощь, оказанную мне, потому что я не могу найти что-либо в Google. Спасибо!

Я использую Django 1.8.2

1 ответ

Просто добавьте поле для отслеживания последнего голосования пользователя.

Пример,

last_vote_time = models.DateTimeField()

И в views.py, проверить, если last_vote_time имеет 24-часовое отличие от текущего времени.

Это должно помочь. Скажите, если вам нужен код. Но я думаю, ты сможешь это сделать.

Другие вопросы по тегам