在创建另一个Django模型实例的同时创建一个Django模型实例

时间:2017-10-13 04:03:24

标签: python django django-models

我正在Django 1.11中创建一个简单的记录保存应用程序,它可以逐个跟踪游戏中发生的事情。我想做的是当我创建一个游戏的instince时自动创建第一个依赖的Turn实例。

class Game(models.Model):
    name = models.Charfield(param)
    active = models.BooleanField(param)

    def __init__(self, *args, **kwargs):
        super(Game, self).__init__(*args,**kwargs)
        Turn(game=self, turn=1).save()

class Turn(models.Model):
    turn = models.IntergerField(param)
    game = models.ForeignKey(Game, on_delete=models.CASCADE)

请建议一个更好的方法,因为我在save方法上得到了ValueError。

1 个答案:

答案 0 :(得分:0)

尝试使用.create方法和save()函数代替__init__,如:

def save(self, *args, **kwargs):
    super(Blog, self).save(*args, **kwargs) # Call the "real" save() method.
    Turn.objects.create(turn=1, game=self)

更多信息about save method