潘飞 2009年10月27日 星期二 16:55 | 1381次浏览 | 0条评论
django-admin发送的信号
post_syncdb(执行syncdb命令之后)
django.db.models.signals.post_syncdb
这个信号的处理句柄应该写在一个特别的地方:一个叫做management的module,这个module应该在你的一个已经安装的应用目录下。如果句柄被注册到了其他地方可能不会被syncdb加载。
和这个信号一同发送的参数:
sender:刚刚安装好的models module。就是,如果刚刚按了一个叫'foo.bar.myapp'的应用,sender就是“foo.bar.myapp.models”module。
app:和sender一样
created_models:任何syncdb已经创建的model类的列表。
verbosity:说明manage.py打印到屏幕上的信息。
interactive:如果是真,允许用户在命令行输入。如果是假,听这个信号的函数不应该要求任何输入。
在B-List的一篇关于如何规划Django应用的文章中,有关于management.py的说明:
当一个应用安装后需要执行自己的python函数,将这些函数放在一个mangement.py的文件 里,使用django内部的 发报机(dispathcher)将你的函数和post_syncdb信号连起来。
另外,James也谈到了其他conventions:
在app水平上,我通常在其中放一些app需要的文件:
如果app定义了任何个人的操纵器,我把他们放进叫做forms.py的文件中,而不放到views.py中。
如果有多个Managers,我把他们放到一个叫做managers.py中,而不放在models.py中。
如果我正在定义任何自定义的上下文处理器,我把他们放到context_processors.py中。
中间件类放在middleware.py中。
任何不与程序相关的代码放到utils.py中。
Zeuux © 2024
京ICP备05028076号
暂时没有评论