我有两个模型,player
和game
。模型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='')
此外,如果重要的话,我在不同的应用程序中都有这两个模型。
请帮忙。感谢。