Django中访问BASE_DIR的推荐方式是什么?

12

我正在使用Django编写一个自动菜单模块,它将列出BASE_DIR中具有urls.py文件的所有包。为此,我显然需要访问BASE_DIR,但我还没有找到一种标准的方法来实现这一点。我可以这样做:

from myproject import settings

do_stuff(settings.BASE_DIR)

但我不想将其硬编码到“myproject”中,因为此菜单模块也可以用于其他应用程序。有更好的解决方案吗?

2个回答

31

这不是关于BASE_DIR的问题,而是关于导入设置的问题。无论如何,您提出的解决方案都不是有效的 Python 代码:导入不使用文件路径。

Django中导入设置的标准和完全文档化的方式如下:

from django.conf import settings

这将在任何 Django 项目中始终生效,并允许您访问任何设置。


6
公正地说,这确实是一个关于BASE_DIR的问题。只是答案涉及导入设置。显然,原帖的作者意识到了这一点,只是有些困惑。 - eric

2
例如,在views.py文件中,我们可以执行以下操作来使用BASE_DIR的值。
from django.conf import settings
value = settings.BASE_DIR

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接