Python django-执行命令时出现循环导入问题

Python django-执行命令时出现循环导入问题,python,django,import,circular-reference,Python,Django,Import,Circular Reference,我正在开发一个django应用程序。以下给出了与我的问题相关的重要模块: globals.py-->包含在整个应用程序中使用的常量SITE\u NAME和SITE\u DOMAIN是其中的两个,用于填充某些字符串。以下是我对它们的定义: from django.contrib.sites.models import Site ... SITE_DOMAIN = Site.objects.get_current().domain SITE_NAME = Site.objects.get_curre

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

globals.py-->包含在整个应用程序中使用的常量
SITE\u NAME
SITE\u 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()fromsites应用程序,和站点应用程序依次导入models.py,该应用程序也从globals.py导入

编辑:

应用程序运行完美,没有遇到这种循环导入问题。从shell导入globals.py不会带来任何问题。甚至可以从shell执行命令,而无需调用manage.py

那么,为什么manage.py某些_命令由于循环导入而失败呢


提前感谢。

您需要在globals.py中存储SITE\u DOMAIN和SITE\u NAME有什么特殊原因吗?这些已经可以直接从站点框架中获得


根据,站点对象在您第一次访问它时会被缓存,因此导入它并直接在那里使用它不会有什么坏处。

globals.py中的一些字符串常量会使用它们,例如这个虚构的字符串:WELCOME\u string='WELCOME to'%site\u NAMELol,WELCOME string constant。您是否也在globals.py中编写了一些视图@drozzy“globals.py”只是一个用于翻译字符串的容器。它不比settings.py更具“全局性”。不要根据其名称预先判断;)