Оптимизация запроса Django
У меня есть модель отзыва к фильму:
class Reviews(models.Model):
"""Отзыв к фильму"""
email = models.EmailField(verbose_name="Почта")
name = models.CharField('Имя', max_length=150, default='Не указано')
text = models.TextField('Отзыв', max_length=5000)
parent = models.ForeignKey('self', verbose_name='Родитель', on_delete=models.SET_NULL, blank=True, null=True)
movie = models.ForeignKey(Movie, verbose_name='Фильм', on_delete=models.CASCADE)
На этот отзыв можно отвечать, для этого используется поле parent Подскажите пожалуйста, как правильно создать запрос, который выдаст все отзывы к фильму, и ответы на эти отзывы, если такие есть Пока что использую функцию в модели фильма
def get_reviews(self):
return self.reviews_set.filter(parent__isnull=True)
Пытаюсь с select_related и prefect_related правильно сформировать запрос, но этого не удается. Хочу получить следующий запрос:
SELECT *
FROM movie_reviews
LEFT JOIN movie_reviews AS mr
ON movie_reviews.id = mr.parent_id
WHERE movie_reviews.movie_id = 1 AND movie_reviews.parent_id IS NULL