我有这个:
public Guitest()
{
setSize(300,300);
// create a JDialog that make guitest wait
MyDialog dlg = new MyDialog();
dlg.setSize(100,100);
dlg.setVisible(true);
while(dlg.isWait())
{
try
{
Thread.sleep(1000);
} catch (InterruptedException ex)
{
Logger.getLogger(Guitest.class.getName()).log(Level.SEVERE, null, ex);
}
System.out.println("waiting mydialog");
}
}
class MyDialog extends JDialog
{
boolean wait = true;
JButton btn = new JButton("OK");
public MyDialog()
{
setSize(50,50);
btn.addActionListener(new ActionListener()
{
@Override
public void actionPerformed(ActionEvent e)
{
wait=false;
}
});
add(btn);
}
public boolean isWait()
{
return wait;
}
}
这很有效......直到我添加另一个这样的接收器:
class PersonneRelation(models.Model):
#blabla
pass
@receiver(post_save, sender=PersonneRelation)
def signal_receiver(sender, **kwargs):
print('***'*5)
print(sender)
它不是同一个发送者,所以它应区分这两个信号......但是一旦我添加了前一个信号,它似乎会覆盖第一个信号,而第一个信号永远不再被调用。我错过了什么?
答案 0 :(得分:0)
您已经定义了两个具有相同名称的方法,基本上您无法在同一py文件中的python中执行此操作。
我更喜欢按照以下方式初始化我的信号,因为它更明确地表达了他们所做的事情,但只要你给他们单独的方法名称你就可以了
post_save.connect(do_something_with_travel, sender=PersonneTravel)
def do_something_with_travel(sender, **kwargs):
created = kwargs['created']
obj = kwargs['instance']
print('***'*5)
print(sender)
print(created)