У меня есть следующая модель в моей модели Django
class Match(models.Model):
initiator = models.ForeignKey('CustomUser', related_name='match_initiator', on_delete=models.CASCADE)
matched_person = models.ForeignKey('CustomUser', related_name='matched_person', on_delete=models.CASCADE)
created_at = models.DateTimeField(auto_now=True)
algo_version = models.IntegerField()
room_no = models.ForeignKey('Room', related_name='room_match', on_delete=models.CASCADE, null=True, blank=True)
class Room(models.Model):
name = models.CharField(max_length=20, unique=True)
members = models.ManyToManyField(CustomUser, related_name="joined_rooms")
created_at = models.DateTimeField(auto_now=True,editable=False)
is_active = models.BooleanField(default=True)
Так что в основном у меня есть две модели, Room
и Match
с Match, имеющим внешний ключ от комнаты.Теперь я хочу создать оба этих объекта одновременно, но я не могу сделать это, так как сначала мне нужно создать объект Room, получить его идентификатор и назначить его экземпляру Match объекта, а затем сохранить его снова.Проблема заключается в том, что если какое-либо из сохранений модели завершилось неудачно, он нарушает код.
Можно ли как-то создать объект Match и Room одновременно?
Я нашел это ссылка в Django Документация: Но я не уверен, обрабатывает ли Django это автоматически или мне нужно обрабатывать это.
Заранее спасибо !!!