我正在发射一个有3个不同接收器的信号。我想要做的是使用信号Student
更新表格update_student
,稍后我想更新update_student_enrollment
中的注册人数。
我想在学生更新后更新注册。但是我的更新注册接收器在学生更新之前就会触发。
Signal.send("student_updated", student_id=1, active=active)
@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!")
@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
之前开火。
答案 0 :(得分:0)
无法在Django中明确指定信号的顺序。
你可以处理这个问题的最好方法是让接收器1信号发出一个信号,你可以让接收器2听到。