Как правильно копировать поля ManyToMany из одной модели в другую
Я пытаюсь переопределить SAVE одной модели и скопировать определенные поля в другую модель. Я клянусь, что у меня это работает...., но теперь это не так. В любом случае... Вот пример того, что, как я думал, раньше работало....
def save(self, *args, **kwargs):
super(MyModel, self).save(*args, **kwargs)
NewModel = Target.objects.create( field=self.field )
NewModel.m2mfield.add(*self.m2mfield.all())
Я клянусь, что раньше это работало, но теперь, когда это выполняется... "обычные" поля копируются, как ожидалось, но M2M пуст. Я подтвердил, что модель показывает значения в поле M2M...., но по какой-то причине они не копируются в модель "Target".
Заранее спасибо за любые мысли о том, что я могу делать неправильно или что могло измениться.
Выглядит хорошо. Вы переименовали m2mfield? Должно быть m2mfield_set?
Получаете ли вы родственников, когда печатаете (self.m2mfield.all())?
Мнение стиля: используйте snake_case для экземпляров (т.е. NewModel -> new_model). Сохраните регистр InitialCaps для классов.