Форум сайта python.su
Здравствуйте. Начал осваивать Django, и столкнулся с задачкой. В моем проекте требуется реализовать учет голосов пользователей так, что бы каждый пользователь при выборе “за” увеличивал бы долю этого варианта ну а если он в следующий раз зашел и проголосовал “против” то уменьшил бы долю за на 1 и на 1 увеличил бы “против”. И тем более важно, исключить возможность повторного голосования за один и тот же вариант одним и тем же пользователем.
Буду благодарен за любые мысли.
Спасибо.
Офлайн
Вопрос как раз из той категории, когда не понятно в чем же у вопрошающего проблема. Связать таблицу пользователей и таблицу голосований через мэни-ту-мэни? И что тут непонятного? У вас уже какие-то модели есть для этого?
Офлайн
Модели Question и Choice. Question - вопрос и дата, Сhoice - за и против. А как связать то? Чтобы один пользователь имел один голос и мог на завтра (например) поменять своё мнение, что не просто добавит к противоположному результату а отнимет от прежднего.
Офлайн
Модель:
class VoteResult(models.Model): user = ... question = ... choice = ... class Meta: unique_together = ("user", "question")
VoteResult.objects.update_or_create(user=user, question=quiestion, defaults={'choice': choice})
Офлайн