Ich habe zwei Modelle: Play
y PlayParticipant
definiert (zum Teil) als:
class PlayParticipant(models.Model):
player = models.ForeignKey('Player')
play = models.ForeignKey('Play')
note = models.CharField(max_length=100, blank=True)
Ein Teil meines Codes hat ein Stück p
mit der Kennung 8581, zu der ich gerne Teilnehmer hinzufügen möchte. Ich versuche, die RelatedManager-Funktion zu verwenden. .create()
um das zu tun, wie:
p.playparticipant_set.create(player_id=2383)
Daraus konstruiert Django:
INSERT INTO `api_playparticipant` (`player_id`, `play_id`, `note`) VALUES (2383, 2383, '')
Ist dies ein Fehler in Django, oder bin ich falsch verwenden .create()
?
Kopieren und Einfügen der Shell zur Überprüfung der Korrektheit:
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`))')
Aus query.log:
5572 Query INSERT INTO `api_playparticipant` (`player_id`, `play_id`, `note`) VALUES (2383, 2383, '')