当我从shell输入第一堂课的信息时,如何进入另一堂课?

时间:2019-02-07 13:48:08

标签: django-models python-3.7

我试图从shell填充模型,并且试图填充输入信息(ForeignKey),以使其能够访问另一个类。 那是我在pycharm中的代码:

.center{
  position: fixed;
  left: 50%; /*move the top left point of block to the center*/
  transform: translate(-50%,0%);
  margin-top:60px;
}

这是结果:

class Team(models.Model):

   name = models.CharField(max_length=256, unique=True)
   details = models.TextField()
   def __str__(self):  
       return self.name




class Player(models.Model):

    name = models.CharField(max_length=256)
    number = models.IntegerField()
    age = models.IntegerField()

    position_in_field = models.CharField(max_length=256, choices=(('1', 'حارس'), ('2', 'دفاع'), ('3', 'وسط'), ('4', 'هجوم')))
    is_captain = models.BooleanField(default=False)
    team = models.ForeignKey(Team)

    def __str__(self):
        return '{} - {}'.format(self.name, self.team)

1 个答案:

答案 0 :(得分:0)

使用外键创建记录时,必须通过其主键在参考模型中指示记录。

对于模型 Team ,您没有明确设置主键,因此 Django 设置了默认字段 mode_id ,是自动递增的PositiveIntegerField,这是您必须在引用记录中指出的内容。

Player.objects.create(name='محمد إبراهيم', number='25', age='27', position_in_field='هجوم', is_captain=False, team_id=1)

如果引用的团队中有模型对象,也可以使用它:

Player.objects.create(name='محمد إبراهيم', number='25', age='27', position_in_field='هجوم', is_captain=False, team=team_instance)