在Django中访问BASE_DIR的推荐方法

Lun*_*dis 6 python django

我在Django中编写一个自动菜单模块,它将列出BASE_DIR中包含urls.py文件的所有包.为此,我显然需要访问BASE_DIR,但我无法找到这样做的标准方法.我可以这样做:

from myproject import settings

do_stuff(settings.BASE_DIR)
Run Code Online (Sandbox Code Playgroud)

但我宁愿不把它硬编码到myproject,因为这个菜单模块也可以用于其他应用程序.有更好的解决方案吗?

Dan*_*man 17

这不是关于BASE_DIR的问题,而是关于导入设置的问题.在任何情况下,您提出的解决方案都不是有效的Python:导入不使用这样的文件路径.

在Django中导入设置的标准和完整记录方式是:

from django.conf import settings
Run Code Online (Sandbox Code Playgroud)

这将始终适用于任何Django项目,并允许您访问任何设置.

  • 公平地说,这实际上是一个关于 BASE_DIR 的问题。这只是*答案* 涉及导入设置。OP显然意识到了这一点,但只是对此感到困惑。 (6认同)