我对我的代码做了一些更改,添加了一个模型,并添加了一些导入,现在突然间,当我试图运行一些管理风格的命令时,我已经编写了脚本,它们失败了,下面是跟踪:
Traceback (most recent call last):
File "./manage.py", line 10, in <module>
execute_from_command_line(sys.argv)
File "/usr/lib/python2.6/site-packages/django/core/management/__init__.py", line 399, in execute_from_command_line
utility.execute()
File "/usr/lib/python2.6/site-packages/django/core/management/__init__.py", line 392, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/usr/lib/python2.6/site-packages/django/core/management/__init__.py", line 272, in fetch_command
klass = load_command_class(app_name, subcommand)
File "/usr/lib/python2.6/site-packages/django/core/management/__init__.py", line 75, in load_command_class
module = import_module('%s.management.commands.%s' % (app_name, name))
File "/usr/lib/python2.6/site-packages/django/utils/importlib.py", line 40, in import_module
__import__(name)
File "/home/site/contracts/core/management/commands/job.py", line 13, in <module>
from contracts import jobs
File "/home/site/contracts/jobs.py", line 8, in <module>
from contracts.imports import crrs, crrs_bids
File "/home/site/contracts/imports/crrs.py", line 17, in <module>
from contracts.core.models import Company, Contract, Bid, Department, Category
File "/home/site/contracts/core/models.py", line 26, in <module>
class Company(models.Model):
File "/usr/lib/python2.6/site-packages/django/db/models/base.py", line 243, in __new__
new_class._prepare()
File "/usr/lib/python2.6/site-packages/django/db/models/base.py", line 307, in _prepare
signals.class_prepared.send(sender=cls)
File "/usr/lib/python2.6/site-packages/django/dispatch/dispatcher.py", line 185, in send
response = receiver(signal=self, sender=sender, **named)
File "/usr/lib/python2.6/site-packages/simple_history/models.py", line 50, in finalize
history_model = self.create_history_model(sender)
File "/usr/lib/python2.6/site-packages/simple_history/models.py", line 77, in create_history_model
app = models.get_app(model._meta.app_label)
File "/usr/lib/python2.6/site-packages/django/db/models/loading.py", line 179, in get_app
self._populate()
File "/usr/lib/python2.6/site-packages/django/db/models/loading.py", line 78, in _populate
self.load_app(app_name)
File "/usr/lib/python2.6/site-packages/django/db/models/loading.py", line 99, in load_app
models = import_module('%s.models' % app_name)
File "/usr/lib/python2.6/site-packages/django/utils/importlib.py", line 40, in import_module
__import__(name)
File "/usr/lib/python2.6/site-packages/debug_toolbar/models.py", line 9, in <module>
dt_settings.patch_all()
File "/usr/lib/python2.6/site-packages/debug_toolbar/settings.py", line 215, in patch_all
patch_root_urlconf()
File "/usr/lib/python2.6/site-packages/debug_toolbar/settings.py", line 203, in patch_root_urlconf
reverse('djdt:render_panel')
File "/usr/lib/python2.6/site-packages/django/core/urlresolvers.py", line 503, in reverse
app_list = resolver.app_dict[ns]
File "/usr/lib/python2.6/site-packages/django/core/urlresolvers.py", line 329, in app_dict
self._populate()
File "/usr/lib/python2.6/site-packages/django/core/urlresolvers.py", line 267, in _populate
for pattern in reversed(self.url_patterns):
File "/usr/lib/python2.6/site-packages/django/core/urlresolvers.py", line 365, in url_patterns
patterns = getattr(self.urlconf_module, "urlpatterns", self.urlconf_module)
File "/usr/lib/python2.6/site-packages/django/core/urlresolvers.py", line 360, in urlconf_module
self._urlconf_module = import_module(self.urlconf_name)
File "/usr/lib/python2.6/site-packages/django/utils/importlib.py", line 40, in import_module
__import__(name)
File "/home/site/contracts/urls.py", line 11, in <module>
admin.autodiscover()
File "/usr/lib/python2.6/site-packages/django/contrib/admin/__init__.py", line 29, in autodiscover
import_module('%s.admin' % app)
File "/usr/lib/python2.6/site-packages/django/utils/importlib.py", line 40, in import_module
__import__(name)
File "/home/site/contracts/core/admin.py", line 3, in <module>
from contracts.core.models import Company, Contract, Bid, Department, Category
ImportError: cannot import name Company
我试过在job .py文件(定义命令行命令),views.py, admin .py和crrs.py模块中添加try/except块,该模块具有我试图运行的功能。当我尝试/将它们全部取出时,脚本工作但失败,因为模型没有在任何地方定义。
同样,当我使用shell_plus并直接导入作业文件或crrs文件时,我可以执行我想要的函数而不会出现任何错误。我已经遍历了两次提交之间更改的所有代码,没有明显的原因导致这个问题。
任何见解将不胜感激!
Company模型通过一系列导入依赖于url .py,而url .py又依赖于admin.py,而admin.py又依赖于Company。所以你有一个循环导入
我建议尝试通过注释admin.autodiscover()来解决这个问题,但是显示你的django版本将有助于确定这是否真的是罪魁祸首。
如果Django的版本是<仍然推荐使用autodiscover()。接下来要检查的是django-debug-toolbar自动补丁是否有问题,请查看安装说明,特别是"WARNING…">