【发布时间】:2017-05-19 07:06:41
【问题描述】:
我正在发射一个具有 3 个不同接收器的信号。我想做的是使用信号update_student 更新表Student,稍后我想更新他在update_student_enrollment 中的注册。
我想在学生更新后更新注册。但我的更新注册接收器在学生更新之前触发。
发送信号。
Signal.send("student_updated", student_id=1, active=active)
接收器 1
@receiver(student_updated)
def update_student(sender, **kwargs):
Student.objects.update(active=0) # I am setting the student activation to false. For simplicity I am not mentioning the logic which is setting the student to inactive.
print("Student Updated!")
接收器 2
@receiver(student_updated)
def update_student_enrollment(sender, **kwargs):
student=Student.objects.filter(student_id=1)
if student.active=0:
StudentEnrollment.objects.filter(student_id=1).update(active=0)
不知何故,我的Receiver 2 在Receiver 1 之前触发了。
【问题讨论】:
标签: django django-orm django-signals