每插入一个特定模型运行Django函数

时间:2017-06-27 04:52:03

标签: django django-models

当说某个模型有128个新条目时,有没有办法在Django中运行一段代码?

2 个答案:

答案 0 :(得分:2)

是的,可以使用django中的信号来完成,您可以在signals.py文件或models.py中使用此逻辑,如果使用的是models.py文件,则删除MyModel的导入

from django.db.models.signals import pre_save
from django.dispatch import receiver
from myapp.models import MyModel


@receiver(post_save, sender=MyModel)
def my_handler(sender, **kwargs):
    total = MyModel.objects.count() //this will return total number of rows
    if total % 128 == 0:
       do what you want to do

答案 1 :(得分:0)

您可以为该模型post_save(docs)添加信号处理程序。然后,如果True参数为{{1}},则递增计数器。如果计数器达到0模128,则调用你的函数。