2007年05月25日 星期五 16:08
ÎÒ¿´ÁËÏÂÏà¹ØµÄºÃ¼¸¸öÓ¢ÎÄ×ÊÁÏ£¬×î³£¼ûµÄÀý×ÓÊÇ£º from django.dispatch import dispatcher from django.db.models import signals from myproj.myapp import models def init_data(): # Your initialisation code here pass dispatcher.connect(init_data, sender=models, signal=signals.post_syncdb) ÊÇÔÚÕâ¸ömodelsµÄsyncdbʱִÐÐinit_data()º¯Êýô£¿ »¹ÊÇ˵ִÐÐinit_data()µÄʱºòÖ´ÐÐmodelsµÄpost_syncdb???ÀàËÆmodels.syncdb() »¹ÊÇÔõô£¿ »¹ÓÐһЩÀý×Ó£¬±ÈÈ磺 dispatcher.connect( increment_tag_summary , signal=signals.pre_save, sender=TagUserObject ) dispatcher.connect( decrement_tag_summary , signal=signals.post_delete, sender=TagUserObject ) ÎÒ»¹ÊDzúÉúÒÔÉÏÁ½ÖÖÀí½â¡£ ´ËÍâÎÒ¿´µ½µÄÏà¹ØÎĵµ¶¼ÊÇsignalsµÄ£¬µ«ÊÇËûµÄʹÓôó¶àºÍdispatcher¹ØÁªÆðÀ´£¬Ò²ÕÒ²»µ½¹ØÓÚdispatcherµÄÏà¹Ø×ÊÁÏ °üÀ¨dispathcher.connect . dispathcher.sendÕâЩ×÷ÓÃÊÇʲô£¿ ÆÚÍûÓÐÅóÓÑÄÜ°ïæ½â»ó£¬Ð»Ð» -------------- 下一部分 -------------- Ò»¸öHTML¸½¼þ±»ÒƳý... URL: http://python.cn/pipermail/python-chinese/attachments/20070525/4cf74719/attachment.htm
2007年05月25日 星期五 16:45
def init_data(): # Your initialisation code here pass dispatcher.connect(init_data, sender=models, signal=signals.post_syncdb) 是说 models 发送信号 post_syncdb 时(在 syncdb 时发送该信号)执行 init_data 。 On 5/25/07, 风向标 <vaneoooo at gmail.com> wrote: > > 我看了下相关的好几个英文资料,最常见的例子是: > > from django.dispatch import dispatcher > from django.db.models import signals > from myproj.myapp import models > > def init_data(): > # Your initialisation code here > pass > > dispatcher.connect(init_data, sender=models, signal=signals.post_syncdb) > > 是在这个models的syncdb时执行init_data()函数么? > 还是说执行init_data()的时候执行models的post_syncdb???类似models.syncdb() > > 还是怎么? > > 还有一些例子,比如: > > dispatcher.connect( increment_tag_summary , signal=signals.pre_save, > sender=TagUserObject ) > dispatcher.connect( decrement_tag_summary , signal=signals.post_delete, > sender=TagUserObject ) > > 我还是产生以上两种理解。 > > 此外我看到的相关文档都是signals的,但是他的使用大多和dispatcher关联起来,也找不到关于dispatcher的相关资料 > 包括dispathcher.connect . dispathcher.send这些作用是什么? > > 期望有朋友能帮忙解惑,谢谢 > > > _______________________________________________ > python-chinese > Post: send python-chinese at lists.python.cn > Subscribe: send subscribe to python-chinese-request at lists.python.cn > Unsubscribe: send unsubscribe to python-chinese-request at lists.python.cn > Detail Info: http://python.cn/mailman/listinfo/python-chinese > -- http://codeplayer.blogspot.com/ -------------- next part -------------- An HTML attachment was scrubbed... URL: http://python.cn/pipermail/python-chinese/attachments/20070525/65c932da/attachment.html
2007年05月25日 星期五 16:56
ÎÊÒ»ÏÂ,ÓÐûÓбȽϺõĹúÍâµÄPYTHONͨÐÅ×é??? wyh 2007-05-25 ·¢¼þÈË£º »ÆÒã ·¢ËÍʱ¼ä£º 2007-05-25 16:47:36 ÊÕ¼þÈË£º python-chinese在lists.python.cn ³ËÍ£º Ö÷Ì⣺ Re: [python-chinese][django] signalsÔõôʹÓã¿ def init_data(): # Your initialisation code here pass dispatcher.connect(init_data, sender=models, signal=signals.post_syncdb) ÊÇ˵ models ·¢ËÍÐźŠpost_syncdb ʱ£¨ÔÚ syncdb ʱ·¢Ë͸ÃÐźţ©Ö´ÐÐ init_data ¡£ On 5/25/07, ·çÏò±ê <vaneoooo在gmail.com> wrote: ÎÒ¿´ÁËÏÂÏà¹ØµÄºÃ¼¸¸öÓ¢ÎÄ×ÊÁÏ£¬×î³£¼ûµÄÀý×ÓÊÇ£º from django.dispatch import dispatcher from django.db.models import signals from myproj.myapp import models def init_data(): # Your initialisation code here pass dispatcher.connect(init_data, sender=models, signal=signals.post_syncdb) ÊÇÔÚÕâ¸ömodelsµÄsyncdbʱִÐÐinit_data()º¯Êýô£¿ »¹ÊÇ˵ִÐÐinit_data()µÄʱºòÖ´ÐÐmodelsµÄpost_syncdb???ÀàËÆmodels.syncdb() »¹ÊÇÔõô£¿ »¹ÓÐһЩÀý×Ó£¬±ÈÈ磺 dispatcher.connect( increment_tag_summary , signal=signals.pre_save, sender=TagUserObject ) dispatcher.connect( decrement_tag_summary , signal=signals.post_delete, sender=TagUserObject ) ÎÒ»¹ÊDzúÉúÒÔÉÏÁ½ÖÖÀí½â¡£ ´ËÍâÎÒ¿´µ½µÄÏà¹ØÎĵµ¶¼ÊÇsignalsµÄ£¬µ«ÊÇËûµÄʹÓôó¶àºÍdispatcher¹ØÁªÆðÀ´£¬Ò²ÕÒ²»µ½¹ØÓÚdispatcherµÄÏà¹Ø×ÊÁÏ °üÀ¨dispathcher.connect . dispathcher.sendÕâЩ×÷ÓÃÊÇʲô£¿ ÆÚÍûÓÐÅóÓÑÄÜ°ïæ½â»ó£¬Ð»Ð» _______________________________________________ python-chinese Post: send python-chinese在lists.python.cn Subscribe: send subscribe to python-chinese-request在lists.python.cn Unsubscribe: send unsubscribe to python-chinese-request在lists.python.cn Detail Info: http://python.cn/mailman/listinfo/python-chinese -- http://codeplayer.blogspot.com/ -------------- 下一部分 -------------- Ò»¸öHTML¸½¼þ±»ÒƳý... URL: http://python.cn/pipermail/python-chinese/attachments/20070525/bd98c9ba/attachment.htm
2007年05月25日 星期五 16:57
signal包括信息发送,通过send()和绑定connect()。 首先是要先定义信息,在django中已经有一些预定义的信息 然后是对要处理的信息进么连接或绑定,这样当信息发出时就可以处理了。那么连接就是通过connect来处理,需要一个函数,同时还要给出想绑定哪个信息,和哪个发出者。有些参数可以缺省或进行通用匹配,如Any之类的表示任意的信息。sender如果不指明则表示不对发出者进行判断。因此一方面你可以根据信号进行过滤,另一方面可以根据发出者也就是哪个对象进行过滤。在许多时候,如果你指定了发出者为一个model类,那么表示只有这个model发出的信号才会接收。 再有就是发射信号。如果是使用django的预定义的信息,这些处理都是在django代码中已经实现的了,你要做的只是定义一个处理函数,然后进行绑定就可以了。 如果是自已写的一个新的信号处理,则上面三个内容都是要你来做的。 -- I like python! UliPad <>: http://wiki.woodpecker.org.cn/moin/UliPad My Blog: http://www.donews.net/limodou
2007年05月25日 星期五 17:35
»¹ÊDz»ºÜÀí½â ÄÇsignalsµ½µ×ÊǸöÍêÈ«¶ÀÁ¢µÄ¶«Î÷£¬»¹ÊÇÒÀ¸½ÓÚmodelsÖ®ÉϵÄÄØ£¿ ÎÒ·´¸´ÔÚÎĵµÀï¿´µ½ËµÆ߸ösignals£¬ÕâÓÖÊÇʲôÒâ˼ÄØ£¿Ö»ÄÜÉèÖÃ7¸ösignals½Ó¿Ú£¿Ô½¿´Ô½ÃÔºý -------------- 下一部分 -------------- Ò»¸öHTML¸½¼þ±»ÒƳý... URL: http://python.cn/pipermail/python-chinese/attachments/20070525/4a0dca89/attachment.html
2007年05月25日 星期五 21:51
http://www.mercurytide.com/whitepapers/django-signals/ 看看这篇就啥都明白了。 -- http://codeplayer.blogspot.com/ -------------- next part -------------- An HTML attachment was scrubbed... URL: http://python.cn/pipermail/python-chinese/attachments/20070525/c0ac72ea/attachment.html
Zeuux © 2025
京ICP备05028076号