2

我正在开发一个 django 应用程序。下面给出了对我的问题重要的模块:

globals.py --> 包含在整个应用程序中使用的常量。SITE_NAME并且SITE_DOMAIN是其中两个,用于填充一些字符串。以下是我如何定义它们:

from django.contrib.sites.models import Site
...
SITE_DOMAIN = Site.objects.get_current().domain
SITE_NAME = Site.objects.get_current().name

models.py --> 模型存在于这个模块中。从 globals.py 导入一些常量

some_command.py --> 一个从全局变量中导入一些常量的命令。

执行时,该命令从globals.py导入一个常量并遇到循环导入问题:在globals.py内部,从站点应用程序调用get_current() ,站点应用程序依次导入具有从globals.py导入的models.py也是。

编辑:

该应用程序运行完美,没有遇到此循环导入问题。从 shell导入globals.py没有问题。甚至命令也可以在不调用manage.py的情况下从 shell 执行。

那么为什么manage.py some_command由于循环导入而失败呢?

提前致谢。

4

1 回答 1

1

是否有任何特殊原因需要将 SITE_DOMAIN 和 SITE_NAME 存储在 globals.py 中?这些已经可以直接从站点框架中获得。

根据文档,站点对象在您第一次访问时被缓存,因此直接导入并在那里使用它不会受到伤害。

于 2009-07-23T15:10:39.020 回答