Нет, это не причина.Этот код не имеет смысла;Вы не можете определить поля динамически, как это.Поля зависят от столбцов в базе данных, модель должна иметь фиксированное количество полей.И goly_domaci
само по себе является полем, в данный момент оно не имеет значения;оно имеет значение только при доступе из фактического экземпляра, когда уже слишком поздно определять другие поля.
Но это не то, что вы хотите делать в любом случае.Нет смысла определять все эти отдельные внешние ключи для одной и той же целевой модели.То, что вы хотите сделать, это определить отдельную модель для целей, которая указывает на эту модель (я полагаю, Zapas означает Game).
class Goal(models.Model):
game = models.ForeignKey(Zapas)
team = models.ForeignKey(Tym, on_delete=models.CASCADE)
strelec = models.ForeignKey(Hrac, on_delete=models.CASCADE)
nahraval = models.ForeignKey(Hrac, on_delete=models.SET_NULL, blank=True, null=True)
Тогда вы можете полностью удалить поля goly_domaci
и goly_hoste
,как вы можете рассчитать их, когда вам нужно отобразить их:
goly_hoste = my_zpas.goal_set.filter(team=my_zpas.tym_hoste).count()
goly_domaci = my_zpas.goal_set.filter(team=my_zpas.tym_domaci).count()