潘飞

潘飞的博客

他的个人主页  他的博客

Management signals

潘飞  2009年10月27日 星期二 16:55 | 1322次浏览 | 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哲思注册吗?现在 注册 !

暂时没有评论

Zeuux © 2024

京ICP备05028076号