Получите все, на что не указывает поле «многие ко многим» - PullRequest
1 голос
/ 28 июня 2011

Прямо сейчас моя модель выглядит примерно так:

PageView:
    ...
    userList = models.ManytoManyField("core.UserProfile")

UserProfile:
    ...
    pageView = models.OnetoOneField(PageView)

Идея состоит в том, что UserProfile имеет ссылку на PageView, которым они владеют. PageView ссылается на многие профили, и эти профили могут видеть, кто следует за ними.

Мне нужен способ получить все профили, на которые не ссылается конкретный PageView.

Например:

Если у нас есть Пользователи, Крис, Боб и Фред, а Крис только следит за Бобом. Получение chris.pageView.userList имеет только Боб. Я хотел бы список, который включает все другие профили, кроме Боба (IE. Крис [Текущий пользователь] и Фред).

Я пытался объяснить, что я пытаюсь сделать, и я все еще плохо знаком с Джанго, поэтому вполне возможно, что я делаю что-то ужасно неправильно. Пожалуйста, оставьте комментарии, чтобы А) помочь мне улучшить мой вопрос или Б) исправить мои модели так, чтобы было легче получить этот тип информации.

1 Ответ

2 голосов
/ 28 июня 2011
UserProfile.objects.exclude(id__in=chris.pageView.userList.all())
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...