Вероятно, я бы добавил третью модель для представления конкретной ставки, которую кто-то сделал, поскольку вполне возможно, что в ставке могут участвовать более двух человек. Это будет выглядеть примерно так:
USER WAGER BET
User (FK(User)) Description
Bet (FK(Bet)) Winner (FK (Wager), null=True)
Amount
Django автоматически генерирует user.wager_set
и bet.wager_set
на основе внешних ключей. Это позволяет легко повторять и отображать ставки для ставки, а также ставки от каждого пользователя. Вы также можете добавить ограничение unique_together
для User
и Bet
в таблице ставок, чтобы каждый пользователь мог сделать только одну ставку.
Когда все ставки сделаны, и выбран победитель, вы просто устанавливаете bet.winner
.
Если вы столкнетесь с ним, вы можете увидеть предупреждение о related_name
, если Bet
указывает на Wager
и Wager
указывает на Bet
. Чтобы исправить, просто добавьте related_name=wagers
к Wager.bet
.