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, скопирует ли это элементы?