Скопируйте много-много записей для нового элемента - PullRequest
1 голос
/ 10 апреля 2020

Django новичок здесь. Я хочу создать новую строку в таблице и скопировать ссылки «многие ко многим» из другой строки.

У меня есть следующие модели (упрощенно):

class Missions(models.Model):
    player = models.ForeignKey(Players, null=True, on_delete=models.CASCADE)
    units = models.ManyToManyField(
        Units,
        through='MissionUnits'
    )

class MissionUnits(models.Model):
    mission = models.ForeignKey(Missions, models.CASCADE)
    unit = models.ForeignKey(Units, models.CASCADE)
    count = models.PositiveIntegerField()

    class Meta:
        constraints = [
            models.UniqueConstraint(fields=['unit', 'mission'], name='unique_mission_units')
        ]

как две таблицы, где определены юниты игрока.

Итак, я хочу сделать следующее:

  • У меня есть существующая запись "Миссии" со связанными записями "MissionUnits".
  • Я хочу создать новую запись «Миссии» с теми же «MissionUnits», что и у старой
  • Новые записи должны сохраниться, даже если я удалю старую запись «Миссии»

Конечно, я мог бы выбрать все записи "MissionUnits", а также извлечь и скопировать информацию в течение для l oop, но есть ли более прямой и элегантный способ сделать это? Если я просто назначу oldmission.units для newmission.units, скопирует ли это элементы?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...