我遇到了“模型未安装或抽象”错误,这些错误只发生在某些机器上而不是其他机器上,当我深入研究时,我发现问题是load_app(self, app_name, can_postpone=False)
方法django.db.models.loading.py
没有像 django 假设的那样工作。
在def load_app(self, app_name, can_postpone=False)
第 87 行,我添加了一些打印语句。(这里的原始代码:https ://github.com/django/django/blob/master/django/db/models/loading.py#L87 )
self.handled[app_name] = None
self.nesting_level += 1
app_module = import_module(app_name)
print "APP--", app_name
try:
print "APPNAME-BEGIN", app_name, type(app_name)
models = import_module('.models', app_name)
print "APPNAME-END__", app_name
print "LOADD", str(models), app_name
except ImportError, e:
您会认为app_name
at与...中的APPNAME-BEGIN
相同app_name
APPNAME-END__
这是输出:
2012-12-20 15:44:12.526254500 APPNAME-BEGIN users <type 'str'>
2012-12-20 15:44:12.590877500 APPNAME-END__ gradmaker
2012-12-20 15:44:12.590877500 LOADD <module 'gradmaker.models' from '/home/gradcon4/gradcon4/project/gradmaker/models.pyc'> gradmaker
是怎么app_name
改变的?为什么导入了错误的模块?(gradmaker
而不是users
)
在什么条件下会发生这种情况?