【问题标题】:Create a Django model instance concurrent with the creation of another Django model instance在创建另一个 Django 模型实例的同时创建一个 Django 模型实例
【发布时间】:2017-10-13 04:03:23
【问题描述】:

我正在 Django 1.11 中创建一个简单的记录保存应用程序,它可以轮流跟踪游戏中发生的事情。我想做的是当我创建一个 Game 实例时,会自动创建第一个依赖的 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。

【问题讨论】:

  • 转身对象没有游戏属性
  • 感谢您的收获,我必须在离线网络上编写我的应用程序,所以我一定会错过在这里输入关键组件

标签: python django django-models


【解决方案1】:

尝试使用.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

【讨论】:

    猜你喜欢
    • 2023-03-23
    • 2023-02-11
    • 2019-01-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-19
    • 2017-11-11
    • 1970-01-01
    相关资源
    最近更新 更多