Приложение Django работает медленно из-за множества внешних ключей
У меня проблемы с отображением и моделированием в django с несколькими внешними ключами.
При отображении или создании требуется много времени, так как у меня много данных.
Например, при попытке создания с помощью CreateView это занимает много времени, или при попытке отобразить сохраненные данные.
Есть ли способ оптимизировать создание и во время показа?
Модели с множественным ключом предварения и ManyToManyField следующие:
class Player(models.Model):
name = models.CharField("Nombre", max_length=100, blank=True, null=True)
player = models.ForeignKey(Socio, on_delete=models.CASCADE, related_name="player_socio")
division = models.ForeignKey(Division, on_delete=models.CASCADE,related_name="player_division", blank=True, null=True)
goals = models.IntegerField("Goles", default=0)
league = models.ForeignKey("League", on_delete=models.CASCADE, related_name="player_league")
class Team(models.Model):
team = models.CharField("Equipo", max_length=50, blank=True, null=True)
league = models.ForeignKey("League", on_delete=models.CASCADE, related_name="team_league", blank=True, null=True)
players = models.ManyToManyField(Player, blank=True, related_name="player_team")
class Match(models.Model):
league = models.ForeignKey(League, on_delete=models.CASCADE,
related_name="match_league")
date = models.DateField("Fecha", default=timezone.now)
week = models.IntegerField("Semana", default=0)
team_1 = models.ForeignKey(Team, on_delete=models.CASCADE, related_name="team_1_goal")
team_2 = models.ForeignKey(Team, on_delete=models.CASCADE, related_name="team_2_goal")
class Goal(models.Model):
goal = models.IntegerField("Goles", default=0)
match = models.ForeignKey(Match, on_delete=models.CASCADE, null=True, blank=True,
related_name="match_goals")
player = models.ForeignKey(Player, on_delete=models.CASCADE, null=True, blank=True,
related_name="player_goal")
league = models.ForeignKey("League", on_delete=models.CASCADE,
related_name="player_league_goal")
<
Я попытался отобразить данные с помощью select2, но это все равно медленно.
Заранее благодарю
используйте prefetch_related и select_related queryset для повышения производительности
https://www.geeksforgeeks.org/prefetch_related-and-select_related-functions-in-django/