Можно ли в Django иметь одно поле модели, значение которого является наивысшим значением в отношении «один ко многим»? - PullRequest
0 голосов
/ 14 июля 2020

У меня две модели. Один представляет несколько групп, а другой представляет людей в этих группах с рейтингом. Я хотел бы иметь поле в модели групп, которое представляет человека с наивысшим рейтингом внутри этой группы. Возможно ли это?

Например:

Groups:
id  name    highest
1   alpha    gold    
2   bravo   diamond  

People:
name   group  rank
Dave     1    silver
bob      1    gold
dilan    1    silver
arthur   2    gold
mark     2    diamond

1 Ответ

1 голос
/ 14 июля 2020

Я хотел бы иметь поле в модели групп, которое представляет человека с наивысшим рейтингом внутри этой группы.

В этом случае вы можете добавить ForeignKey к модели вашей группы. Внешний ключ связывает одно из полей (которое вы можете назвать как хотите) с другим классом модели, который в вашем случае будет моделью User.

Но если вы хотите, чтобы наивысший человек с рейтингом, все вышеперечисленные действия будут сочтены нереальными c, поскольку каждый раз при изменении таблицы лидеров вам нужно обновлять sh свою модель, а это неудобно.

Что я Предлагаю, вместо добавления другого поля, визуализировать все объекты человека и передать его как часть контекста. Таким образом, при изменении ранга пользователя вам не нужно обновлять sh вашу модель. Пожалуйста, обратитесь к деталям do c о передаче контекста для просмотра и способ сортировки данных .

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