Django中的“management.py”是什么?

6 投票
3 回答
2491 浏览
提问于 2025-04-16 08:35

根据这个文档,我需要在management.py里放一些东西,这样当我运行“syncdb”时,东西就会被创建。

我应该在哪里做这个呢?我到处找都没看到management.py。

http://code.google.com/p/django-notification/wiki/IntegratingNotification#Creating_Notice_Types

3 个回答

0

来自Django手册:

django.db.models.signals.pre_syncdb

这是在syncdb命令开始安装应用程序之前发送的信号。

任何监听这个信号的处理程序需要放在特定的位置:也就是你在INSTALLED_APPS中某个管理模块里。如果处理程序放在其他地方,syncdb可能找不到它们。

这是因为syncdb不会加载Django项目的所有部分,所以如果你在models.py中定义你的信号,syncdb就找不到它。但是在这里定义的信号不需要在框架的其他地方出现。

0

在Django应用中,并不是每个模块在项目启动时都会被执行。只有models.py这个文件会被执行。虽然这样有点不太好,但你可以把代码放在这里。至于management.py这个文件,可能是个错误。

6

把它放到相关应用的文件夹里。例如,如果你的项目结构是这样的:

my_project/
    my_app/
        models.py
        views.py
        tests.py

就把它放在这里:

my_project/
    my_app/
        management.py
        models.py
        views.py
        tests.py

(这样会在 *my_app* 这个包里创建一个管理的 模块,在Python的说法里就是这样。)

撰写回答