Django在批量更新时触发信号

时间:2017-02-07 17:45:53

标签: python django django-queryset django-signals

我知道没有触发批量更新的信号,但是,我需要这种行为。我想知道这两种方式中的哪一种更有效:

qs = MyObject.objects.all()
  1. 进行批量更新,然后在循环中手动触发每个实例的信号:

    qs.update(active=True)
    for instance in qs:
        post_save.send(sender=MyObject, instance=instance)
    
  2. 循环qs并在每个实例上调用save:

    for instance in qs:
        instance.active = True
        instance.save(update_fields=['active'])
    

1 个答案:

答案 0 :(得分:1)

只需使用django rest框架并使用django rest bulk create plugin然后触发其工作的信号......

https://github.com/miki725/django-rest-framework-bulk