Мне интересно, можно ли собрать «конечное состояние» поля m2m в Django?
Я сейчас использую m2m_changed.connect(myfunction, sender=MyModel.tests.through)
И у меня есть:
myfunction(**kwargs):
action = kwargs.pop('action', None)
instance = kwargs.pop('instance', None)
if action in ["post_remove", "post_add"]:
instance.owned_tests = instance.tests.count()
instance.save()
Моя проблема в том, что если я добавляю и удаляю элементы из поля m2m, а затем сохраняю, запускаются два сигнала m2m_changed, один для добавления и один для удаления.
Есть ли способ сгруппировать их, чтобы myfunction
вызывался только один раз, когда все изменения в поле m2m завершены?