Django ограничивает выбор поля из одного из двух Foreignkeys в модели - PullRequest
1 голос
/ 29 декабря 2011

Просто любопытно, как бы Джанго смог добиться следующего:

Пример модели:

class Match(models.Model):
    p1 = models.ForeignKey(Player , related_name='player1')
    p2 = models.ForeignKey(Player  ,related_name='player2')

    game1_winner = models. #Something that would limit the choice of the winner to only the two participants . 
    game2_winner = # the same . 

Должен ли я позаботиться об этой логике в форме или я должен позаботиться об этом в методе сохранения? и что было бы наиболее оптимальным способом достижения этого?

Спасибо заранее.

1 Ответ

2 голосов
/ 29 декабря 2011

Лично я бы выделил их и обработал бы ограничение в представлении.

Примерно так:

class Match(models.Model):
    p1 = models.ForeignKey(Player , related_name='player1')
    p2 = models.ForeignKey(Player  ,related_name='player2')

class Game(models.Model):
    match = models.ForeignKey(Match)
    winner = models.ForeignKey(Player)

Затем укажите, какие игроки могут быть определены как Победители, в зависимости от матча. Это только мой взгляд.

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