m2m_change, когда элементы добавлены и удалены - PullRequest
0 голосов
/ 20 сентября 2019

Мне интересно, можно ли собрать «конечное состояние» поля 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 завершены?

...