首页 > 解决方案 > Django:将 .py 文件移动到文件夹中进行整理

问题描述

我有一个 Django 项目,我认为整理一下并将所有.py文件放入一个文件夹中会很好。

我的目录结构最初是相当简单的:

[site]
├── [mysite]
│   ├── __init__.py
│   ├── admin.py
│   ├── settings.py
│   ├── urls.py
│   ├── views.py
│   └── wsgi.py
└── manage.py

现在我已经将所有这些.py文件都__init__.py移到了文件夹py中。

[site]
├── [mysite]
│   ├── __init__.py
│   └── [py]
│       ├── admin.py
│       ├── settings.py
│       ├── urls.py
│       ├── views.py
│       └── wsgi.py
└── manage.py

为了确保这将起作用,我检查了所有对文件的引用并将其更改为新位置。例如在manage.py我改变了:

if __name__ == "__main__":
    os.environ.setdefault("DJANGO_SETTINGS_MODULE", "mysite.settings")

if __name__ == "__main__":
    os.environ.setdefault("DJANGO_SETTINGS_MODULE", "mysite.py.settings")

我对所有我能找到的参考资料都这样做了。但是我现在面临的问题admin.py似乎没有在任何地方被引用或导入,当我现在对其进行更改时,它不会导致我的测试服务器重新启动,因此它显然与项目断开了连接。

有没有办法将 Django 指向新的位置admin.pysettings.py是否有一些我缺少的参数可以放入?

编辑:我在下面发布了我自己的答案,但如果你有更好的答案,请添加它。

标签: pythondjango

解决方案


我想出了一个这样做的方法,尽管这不是我理想的解决方案。

我在这个问题的公认答案中找到了一些灵​​感: Splitting "admin.py" of a Django project?

它说该admin.py文件可以用一个admin文件夹替换,然后在其中您可以放置​​一个__init__.py文件,其中包含所有管理文件的导入语句。

所以我这样做了,但只是把我的导入声明如下:

from mysite.py import admin

这样我就可以将文件与问题中提到的所有其他文件一起保存在文件夹中admin.pypy

但是,正如我所提到的,这对我来说并不理想,因为它仍然意味着拥有额外的admin文件夹,我宁愿找到其他更简单的方法来做到这一点,但我还没有找到。如果您有更好的答案,请发布它。


推荐阅读