Как создать ассоциативную сущность с дополнительными полями в Django - PullRequest
0 голосов
/ 24 апреля 2018

Я столкнулся со следующей проблемой.

У меня есть лица, Предложение и Пользователь , aпользователь может голосовать за или против нескольких предложений, и предложение может иметь несколько голосов от нескольких пользователей.

Это отношение между предложением и пользователем "многие ко многим", дело в том, что здесь я хочу добавить дополнительное поле для указанияесли Голосование положительное или отрицательное.

Есть ли способ сделать это в Django с помощью ManyToManyField? или единственный способ сделать это - создать модель объекта голосования вручную, например:

    class Vote(models.Model):
    user = models.ForeignKey(User,related_name='voter',null=False)
    proposal = models.ForeignKey(Proposal,related_name='vote_to',null=False)
    opinion = models.BooleanField(blank=False,null=False)

И в случае, если мне придется сделать это вручную, как я могу сказать Джанго, что первичный ключ - это состав других внешних ключей

1 Ответ

0 голосов
/ 24 апреля 2018

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

См. статью о поддержке первичных ключей из нескольких столбцов в Django, а также этот ответ .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...