Как отсортировать пользовательскую модель по полям в профильной модели (1: 1)? - PullRequest
1 голос
/ 29 сентября 2019

skill_note_reputation - это поле в модели профиля, которое имеет отношение 1: 1 к Profileuser.

Как отсортировать пользовательские модели по значениям skill_note_reputation?

    user_list = User.objects.all ()

Спасибо, что разрешили мнезнать, как это исправить

1 Ответ

0 голосов
/ 29 сентября 2019

Если вы добавите ключ parent_link=True к вашему OneToOneField, вы можете ссылаться на поля в Profileuser, как если бы они принадлежали модели User.

Например:

class Profileuser(models.Model):
    user = models.OneToOneField(
          User, on_delete=models.CASCADE,
          related_name='profileuser', parent_link=True)
    skill_note_reputation = models.IntegerField()

Теперь вы можете отфильтровать свою User модель следующим образом:

User.objects.filter(skill_note_reputation=1)

Для более питонического подхода вы можете воспользоваться преимуществом наследования модели Django *., и превратите свою Profileuser модель в эту:

class Profileuser(User):
    skill_note_reputation = models.IntegerField()

Обратите внимание, что эта модель и вышеуказанная модель идентичны.

Если по какой-либо причине вы не хотитеиспользуйте parent_link=True, вы можете ссылаться на любые ForeignKey столбцы, используя Django LOOKUP_SEP, например:

User.objects.filter(profileuser__skill_note_reputation=1)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...