如何在Django中相对于项目路径设置LOCALE_PATH?

时间:2014-02-12 17:46:33

标签: django django-i18n

在开发环境中,我将语言环境路径设置为:

LOCALE_PATHS = (
'/Users/***/Documents/Projects/**/Server/Django/**/locale',
)

但是当我将其部署到服务器时,会改变语言环境路径。

我该如何处理?

2 个答案:

答案 0 :(得分:6)

添加设置

import os

LOCALE_PATHS = (
    os.path.join(os.path.dirname(__file__), "locale"),
)

答案 1 :(得分:5)

我目前仍在使用Django 1.5并且发现我可以使用以下内容轻松处理它:

LOCALE_PATHS = (
    'locale',
)

如果您需要使用绝对路径(有意强调缩进),以下情况会更好:

import os.path

LOCALE_PATHS = (
    os.path.abspath(
        os.path.join(
            os.path.dirname(__file__), 
                '..', "locale")),
)
  • 首先,对os.path.dirname的调用会返回设置文件(__file__)目录的路径,例如: /Users/foobar/projects/django-tutorial/mysite/mysite
  • 接下来,对os.path.join的调用将前一个结果与一个级别更高的locale目录的相对引用连接起来,例如/Users/foobar/projects/django-tutorial/mysite/mysite/../locale
  • 最后,对os.path.abspath的调用会将之前的相对路径引用转换为绝对路径引用,例如/Users/foobar/projects/django-tutorial/mysite/locale