Django - 使用user_id创建模型实例

时间:2017-04-30 09:58:44

标签: python sql django

我有两个模型,playergame。模型player是扩展的Django Auth用户模型。我正在尝试使用用户ID创建游戏实例,而不是自动创建的玩家ID。是否可以在单个查询中执行此操作? Django版本:1.11。

new_game = Game(active=False,
                        ### user_id=request.user.id,
                        display_every=display_every,
                        lead_to_win=lead_to_win,
                        p1_coins=num_of_coins,
                        p2_coins=num_of_coins,
                        created=django.utils.timezone.now())

new_game.save()

此命令创建实例。它的user_id不起作用,它只适用于我必须用另一个查询获取的player_id。我已经评论过它以突出显示这条线。

class Game(models.Model):
    id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
    active = models.BooleanField(default=False)
    over = models.BooleanField(default=False)
    winner = models.SmallIntegerField(null=True)
    player1 = models.OneToOneField(Player, related_name='player1')
    player2 = models.OneToOneField(Player, related_name='player2', null=True)
    p1_coins = models.IntegerField(default=100)
    p2_coins = models.IntegerField(default=100)
    array = models.TextField(default=json.dumps([(None, None) for x in range(100)]))
    round_no = models.IntegerField(default=0)
    display_every = models.IntegerField(default=1)
    lead_to_win = models.IntegerField(default=5)
    created = models.DateTimeField(default=django.utils.timezone.now)


class Player(models.Model):
    user = models.OneToOneField(User, on_delete=models.CASCADE)
    image = models.ImageField(default='/static/images/anon.jpg', upload_to='static/images/profile-pics/', null=True, blank=True)
    created = models.DateTimeField(default=django.utils.timezone.now)
    last_seen = models.DateTimeField(default=django.utils.timezone.now)
    matches = models.IntegerField(default=0)
    wins = models.IntegerField(default=0)
    losses = models.IntegerField(default=0)
    win_string = models.TextField(blank=True, default='')

此外,如果重要的话,我在不同的应用程序中都有这两个模型。

请帮忙。感谢。

0 个答案:

没有答案