Ниже приведены мои предложения, согласно моим возможностям.
Согласно документации,
Отношение многие-к-одному. Требуются два позиционных аргумента: класс, к которому относится модель, и опция on_delete.
См. Ссылку здесь . Таким образом, первый позиционный аргумент - это класс, связанный с Foreign Key, а второй позиционный аргумент - on_delete. Вы должны определить его как models.CASCADE или в зависимости от вашего приложения. Таким образом, в этом случае вторым позиционным аргументом является «Player.name». Я думаю, что вы должны сначала заменить его на модели. КАСКАД.
Таким образом, измените код с того, что ниже
class Injuries(models.Model):
player = models.ForeignKey(Player, Player.name)
team = models.ForeignKey(Team)
на код ниже
class Injuries(models.Model):
player = models.ForeignKey(Player, on_delete=models.CASCADE)
team = models.ForeignKey(Team)
внешний ключ устанавливается на первичный ключ связанной модели. В этом случае (так как вы его не определили), это будет player_id, который автоматически присваивается django. Если вы хотите, чтобы он использовал столбец «name» из модели Player, вам нужно установить «unique = True» в поле имени модели Player. Также обратите внимание на использование опции to_field = 'name'.
В этом случае измененный код будет таким, как показано ниже.
class Player(models.Model):
name = models.CharField(max_length = 256, unique=True)
number = models.IntegerField()
age = models.IntegerField()
is_captain = models.BooleanField(default = False)
class Injuries(models.Model):
player = models.ForeignKey(Player, to_field='name', on_delete=models.CASCADE)
team = models.ForeignKey(Team)
Надеемся, он будет работать. Если ошибка не устранена, сообщите мне.