Может ли django prefetch related работать с 3 поисками?
Я хочу предварительно получить 3 таблицы плюс начальную таблицу. Вот примеры моделей проекта, над которым я работаю
class ExampleOne(models.Model):
name = models.Charfield()
option = models.BooleanField()
money = IntegerField()
class ExampleTwo(models.Model):
word = models.Charfield()
example_one = models.ManyToManyField(ExampleOne)
number = IntegerField()
class ExampleThree(models.Model):
number = models.IntegerField()
example_two = models.ForeignKey(ExampleTwo)
def get_calculation_one(self):
Calculate using data from Example_2 and Example_1
class ExampleFour(models.Model):
date = models.DateField()
example_three = models.ManyToManyField(ExampleThree)
def get_calculation_two(self):
Calculate using data from method on Example_3
Теперь я хочу знать, возможно ли получить данные из всех этих моделей с минимально возможным количеством обращений к базе данных, потому что когда я пытаюсь получить данные, требуется более одной минуты, чтобы получить данные и отправить их на фронтенд
Вычисление может делать много обращений к базе данных, чтобы получить данные и вычислить, и я думаю, что именно поэтому на получение данных уходит больше минуты
мой вид выглядит следующим образом
qs = ExampleFour.objects.prefetch_related(
Prefetch('example_three__example_two__example_one')
).filter(...)
Есть ли способ использовать предварительную выборку, чтобы сделать поиск быстрее, или есть другое предложение, как я могу переписать свой код, чтобы избежать этого длительного времени поиска?
Примечание: я все еще новичок в Django