【发布时间】:2017-10-21 09:47:58
【问题描述】:
我正在运行一些与 django 应用程序相关的 python 脚本。
所以我手动创建了一个文件夹(命名脚本),其中包含一些 python 脚本,但不是使用./manage.py startapp scripts 创建的。除了这个文件夹,还有一个 modelsapp django 应用程序(其中包含我的模型),然后是 project 文件夹,其中包含 settings.py 和 urls.py。
我运行 ./manage.py shell < scripts/script.py 来运行我的脚本。
现在这里是我的 scripts.py 的示例代码
from modelsapp.models import *
print(Room.objects.all())
这很好用。现在考虑第二种情况。我现在只运行./manage.py shell,然后输入以下命令-
>>>from modelsapp.models import *
>>>def init():
... print(Room.objects.all())
...
>>>init()
这也很有效。但是现在当我在第一种情况下通过文件运行上述代码时,它显示NameError: name 'Room' is not defined
看起来我刚刚导入的模型类在函数中是不可访问的。 这种行为有点奇怪。
请帮忙。如果我错过了任何要提及的内容,请在下面发表评论。
编辑:由于这是一个有点奇怪的行为并且无法找到任何答案,我只是将类 Room 直接传递给函数 init() 作为参数来完成工作现在。
【问题讨论】:
-
from project.modelsapp.models import *或from modelsapp.models import Room怎么样? -
第一个给出导入错误
-
第二个它说了同样的话。
-
NameError: name 'Room' is not defined -
我有这个。
modelsapp.apps.ModelsappConfig
标签: django python-3.x django-models django-shell