我有一个 Django 项目,我认为整理一下并将所有 .py
文件放入一个文件夹中会很好。
我的目录结构最初相当简单:
[site]
├── [mysite]
│ ├── __init__.py
│ ├── admin.py
│ ├── settings.py
│ ├── urls.py
│ ├── views.py
│ └── wsgi.py
└── manage.py
现在我已将除 __init__.py
之外的所有 .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.py
的新位置?是否有一些参数可以放入我缺少的 settings.py
中?
编辑:我在下面发布了我自己的答案,但如果您有更好的答案,请添加。
最佳答案
我已经想出了一个办法,尽管这不是我理想的解决方案。
我在这个问题的已接受答案中找到了一些灵感: Splitting "admin.py" of a Django project?
那里说 admin.py
文件可以替换为 admin
文件夹,然后在其中可以放置 __init__.py
文件,其中包含所有管理文件的导入语句。
所以我这样做了,但只是将我的导入语句写成这样:
from mysite.py import admin
这样我就可以将 admin.py
文件与我在问题中提到的所有其他文件一起保存在 py
文件夹中。
但是,正如我所提到的,这对我来说并不理想,因为它仍然意味着拥有额外的 admin
文件夹,我宁愿找到其他更简单的方法来做到这一点,但我还没有找到一。如果您有更好的答案,请发布。
关于python - Django:将 .py 文件移动到文件夹中进行整理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57381050/