Уведомления

Группа в Telegram: @pythonsu

#1 Май 11, 2015 05:31:05

Maxim2015
Зарегистрирован: 2015-05-10
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

Голосование в Django

Здравствуйте. Начал осваивать Django, и столкнулся с задачкой. В моем проекте требуется реализовать учет голосов пользователей так, что бы каждый пользователь при выборе “за” увеличивал бы долю этого варианта ну а если он в следующий раз зашел и проголосовал “против” то уменьшил бы долю за на 1 и на 1 увеличил бы “против”. И тем более важно, исключить возможность повторного голосования за один и тот же вариант одним и тем же пользователем.
Буду благодарен за любые мысли.
Спасибо.

Офлайн

#2 Май 11, 2015 11:20:53

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Голосование в Django

Вопрос как раз из той категории, когда не понятно в чем же у вопрошающего проблема. Связать таблицу пользователей и таблицу голосований через мэни-ту-мэни? И что тут непонятного? У вас уже какие-то модели есть для этого?



Офлайн

#3 Май 13, 2015 13:14:36

Maxim2015
Зарегистрирован: 2015-05-10
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

Голосование в Django

Модели Question и Choice. Question - вопрос и дата, Сhoice - за и против. А как связать то? Чтобы один пользователь имел один голос и мог на завтра (например) поменять своё мнение, что не просто добавит к противоположному результату а отнимет от прежднего.

Офлайн

#4 Май 13, 2015 16:28:55

inoks
От: Russia
Зарегистрирован: 2012-12-11
Сообщения: 343
Репутация: +  35  -
Профиль   Адрес электронной почты  

Голосование в Django

Модель:

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})

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version