Фильтрация по трем таблицам с использованием Django - PullRequest
2 голосов
/ 11 марта 2010

У меня есть 3 модели django, где первая имеет внешний ключ ко второй, а вторая - внешний ключ к третьему. Как это:


class Book(models.Model):
    year_published = models.IntField()
    author = models.ForeignKey(Author)

class Author(models.Model):
    author_id = models.AutoField(primary_key=True)
    name = models.CharField(max_length=50)
    agent = models.ForeignKey(LitAgent)

class LitAgent(models.Model):
    agent_id = models.AutoField(primary_key=True)
    name = models.CharField(max_length=50)

Я хочу попросить всех литературных агентов, у авторов которых, например, были книги, опубликованные в 2006 году. Как я могу сделать это в Джанго? Я посмотрел документацию о фильтрах и QuerySets, и не вижу очевидного пути. Спасибо.

1 Ответ

10 голосов
/ 11 марта 2010
LitAgent.objects.filter(author__book__year_published=2006)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...