Фильтр Django Select_Related - PullRequest
       0

Фильтр Django Select_Related

4 голосов
/ 29 января 2012

При использовании select_related кто-нибудь разработал способ фильтрации по полю в таблице внешнего ключа.

Например, с учетом следующих моделей:

class Author(models.Model):
    first_name = models.CharField(max_length=30)
    last_name = models.CharField(max_length=40)

class AuthorExtra(models.Model):
    author = models.ForeignKey(Author)
    type = models.ForeignKey(ExtraType)
    value = models.CharField(max_length = 24)

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

1 Ответ

7 голосов
/ 29 января 2012

Вы не можете сделать это с select_related, так как это будет работать только для полей One-to-One или ForeignKeys. Для обратных взаимоотношений, подобных этой, в версии для разработки введено prefetch_related, и это именно то, что вы ищете.

https://docs.djangoproject.com/en/dev/ref/models/querysets/#prefetch-related

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