Как правильно копировать поля 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 для классов.

Вернуться на верх