我有一个名为SPL的模型,该模型以固定的间隔获取新对象。每当它获得一个新对象时,函数pre_save信号就会调用“ process_data”函数。 在此功能中,我试图根据SPL模型对象的字段“时间”在另一个模型“索引”中更新字段“ leq_start”。该代码似乎有效,因为我没有收到任何错误,但是该字段没有更新。怎么了? 我还有一些基于post_save信号的其他功能,在这里效果很好...
我已经尝试了更新替代方法,但是那也不起作用。
Index.objects.filter(device_id=id_).update(leq_start=instance.time)
def process_data(sender, instance, **kwargs):
id_ = instance.device_id
num = instance.number
# new code
prevNum = Index.objects.get(device_id=id_).previous_nbr
dP = num - prevNum
if dP > 0:
if prevNum == 0:
dT = 60
b = Index.objects.get(device_id=id_)
b.leq_start = instance.time
b.save()
instance.leq_60=instance.leq
return
else:
...
pre_save.connect(process_data, sender=SPL)