Событие для сохранения последнего объекта через Django formset
У меня есть сигнал, который слушает модель, отношение которой к другой модели выглядит так
class Model1(models.Model):
field1 = models.CharField(max_length=4)
class ChildToModel1(models.Model):
model_1 = models.ForeinKey(Model1, related_name='model_1', on_delete=models.CASCADE)
Теперь у меня inlineformset_factory
для ChildToModel1
согласно django вызов save для ChildToModel1 inlineformset_factory сохранит несколько экземпляров ChildToModel1, как будто это forloop. Если у меня есть, например, 3 набора форм, есть ли способ проверить общее количество объектов после общего сохранения, а не при каждом сохранении, я обращаюсь к ним по сигналу post_save модели.
печать ChildToModel1
на сигнал post_save возвращает что-то вроде этого
<QuerySet [obj]>
<QuerySet [obj][obj]>
<QuerySet [obj][obj][obj]>
Что я действительно хочу:
<QuerySet [obj][obj][obj]>
Вы можете включить другой сигнал вручную в конце.
Сначала определите новый сигнал: https://docs.djangoproject.com/en/4.0/topics/signals/#defining-signals
import django.dispatch
post_save_after_last = django.dispatch.Signal()
а затем импортировать его и запустить
from somewhere import post_save_after_last
last_instance = ChildToModel1(field='qwerty')
post_save_after_last.send(sender=ChildToModel1, instance=instance)
Подробнее вы можете прочитать здесь: https://docs.djangoproject.com/en/4.0/topics/signals/#sending-signals