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

Bur*_*rak 4 django django-i18n

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

LOCALE_PATHS = (
'/Users/***/Documents/Projects/**/Server/Django/**/locale',
)
Run Code Online (Sandbox Code Playgroud)

但是,当我将其部署到服务器时,区域设置路径将被更改.

我怎么处理这个?

小智 7

设置添加

import os

LOCALE_PATHS = (
    os.path.join(os.path.dirname(__file__), "locale"),
)
Run Code Online (Sandbox Code Playgroud)


Jar*_*erg 5

我目前仍在使用Django 1.5并且发现我可以使用以下方法处理它最简单:

LOCALE_PATHS = (
    'locale',
)
Run Code Online (Sandbox Code Playgroud)

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

import os.path

LOCALE_PATHS = (
    os.path.abspath(
        os.path.join(
            os.path.dirname(__file__), 
                '..', "locale")),
)
Run Code Online (Sandbox Code Playgroud)
  • 首先,调用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