У меня есть две модели: Play
и PlayParticipant
, определенные (частично) как:
class PlayParticipant(models.Model):
player = models.ForeignKey('Player')
play = models.ForeignKey('Play')
note = models.CharField(max_length=100, blank=True)
Часть моего кода имеет игру p
с идентификатором 8581, и я хотел бы добавить к ней участников. Я пытаюсь использовать RelatedManager .create()
для этого, например:
p.playparticipant_set.create(player_id=2383)
Из чего Джанго строит:
INSERT INTO `api_playparticipant` (`player_id`, `play_id`, `note`) VALUES (2383, 2383, '')
Это ошибка в Django, или я неправильно использую .create()
?
Копирование-вставка оболочки для проверки работоспособности:
In [17]: p = Play.objects.get(id=8581)
In [18]: p.id
Out[18]: 8581L
In [19]: p.playparticipant_set.create(player_id=2383)
...
IntegrityError: (1452, 'Cannot add or update a child row: a foreign key constraint fails (`gc/api_playparticipant`, CONSTRAINT `play_id_refs_id_60804ffd462e0029` FOREIGN KEY (`play_id`) REFERENCES `api_play` (`id`))')
Из query.log:
5572 Query INSERT INTO `api_playparticipant` (`player_id`, `play_id`, `note`) VALUES (2383, 2383, '')