Maxim2015
Май 11, 2015 05:31:05
Здравствуйте. Начал осваивать Django, и столкнулся с задачкой. В моем проекте требуется реализовать учет голосов пользователей так, что бы каждый пользователь при выборе “за” увеличивал бы долю этого варианта ну а если он в следующий раз зашел и проголосовал “против” то уменьшил бы долю за на 1 и на 1 увеличил бы “против”. И тем более важно, исключить возможность повторного голосования за один и тот же вариант одним и тем же пользователем.
Буду благодарен за любые мысли.
Спасибо.
FishHook
Май 11, 2015 11:20:53
Вопрос как раз из той категории, когда не понятно в чем же у вопрошающего проблема. Связать таблицу пользователей и таблицу голосований через мэни-ту-мэни? И что тут непонятного? У вас уже какие-то модели есть для этого?
Maxim2015
Май 13, 2015 13:14:36
Модели Question и Choice. Question - вопрос и дата, Сhoice - за и против. А как связать то? Чтобы один пользователь имел один голос и мог на завтра (например) поменять своё мнение, что не просто добавит к противоположному результату а отнимет от прежднего.
inoks
Май 13, 2015 16:28:55
Модель:
class VoteResult(models.Model):
user = ...
question = ...
choice = ...
class Meta:
unique_together = ("user", "question")
во views:
VoteResult.objects.update_or_create(user=user, question=quiestion, defaults={'choice': choice})