Я хотел бы выполнить предварительную выборку.Дело в том, что у меня есть baseModel и унаследованные модели, которые нравятся другим моделям.Но моя базовая модель не связана с ними.Вот код speudo:
class Author(models.Model):
name = models.CharField()
class Movie(PolymorphicModel):
title = models.CharField()
author = models.ForeignKey('Author')
class EnglishMovie(Movie):
pass
class FrenchMovie(Movie):
pass
class Subtitle(models.Model):
movie = models.ForeignKey('FrenchMovie', related_name='subtitle')
text = models.CharField()
Как видите, FrenchMovie связан с субтитрами, а EnglishMovie - нет.Я хотел бы предварительно выбрать весь мой фильм, а также предварительно выбрать субтитры.Я пробовал несколько методов:
def get_queryset(self):
return Movie.objects.prefetch_related('author', 'subtitle').all()
Я получаю: ValueError: Невозможно запросить "объект EnglishMovie (1)": должен быть экземпляр "FrenchMovie".
def get_queryset(self):
q1 = Movie.objects.prefetch_related('author').all()
q2 = FrenchMovie.objects.prefetch_related('subtitle').all()
return q1 | q2
Я получаю: AssertionError: Не удается объединить запросы для двух разных базовых моделей.
Есть какие-нибудь советы?Большое спасибо.