Как получить все записи класса, если связанный набор содержит произвольный элемент? - PullRequest
0 голосов
/ 29 апреля 2020
class Book(models.Model):
    ...

class Page(models.Model):
    book = models.ForeignKey(Book)
    note = models.ForeignKey(Note)


class Note(models.Model):
    name = models.CharField()

Из приведенного выше примера, как я могу получить все экземпляры Книги, которые содержат произвольную заметку?

my_note = Note.objects.get(name="Arbitrary")

pages_with_my_note = Page.objects.filter(note=my_note)

books_with_my_note = Book.objects.filter( ??? )

Я пытаюсь

pages_with_my_note.values_list("book").distinct(), но получаю:

TypeError: Different_ sql () отсутствует 1 обязательный позиционный аргумент: 'params'

1 Ответ

1 голос
/ 29 апреля 2020

Просто,

books_with_my_note = Book.objects.filter(<b>page__note__name='Arbitrary'</b>).distinct()

Ссылка:

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