ссылка на поле из другой модели из функционального поля - PullRequest
0 голосов
/ 07 мая 2020

У меня есть модель игры и модель ActiveGame. Я хочу отслеживать текущие игры, которые будут иметь start_time (текущее время) и end_time (время начала - Game.duration)

Это моя модель (отредактирована для удобства чтения):

class Game(models.Model):
    title = models.CharField(max_length=255,null=False, blank=False)
    tiempo = models.DurationField(null=True, blank=True,default="00:60:00")

def get_end_time():
  return datetime.now() + timedelta(1d) --> here I want to retrieve Game.tiempo

class ActiveGame(models.Model):
    game = models.ForeignKey(Game, on_delete=models.CASCADE)
    user = models.ForeignKey(User, on_delete=models.CASCADE)
    start_time = models.DateTimeField(default=timezone.now) 
    end_time = models.DateTimeField(default=get_end_time)

Я определил значение start_time по умолчанию в отдельной функции, как рекомендовано, и отлично работает с жестко запрограммированными значениями, но я хочу получить эту информацию из модели Game.

Я пробовал много вариантов:

def get_end_time(self):
  return datetime.now() + timedelta(self.Game.tiempo)

end_time = models.DateTimeField(default=get_end_time(self))

Я не могу понять, как поле, вызывающее функцию, может собирать информацию о другой модели, которая уже связана с внешним ключом

...