我正在运行一些与 django 应用程序有关的 python 脚本。所以我手动创建了一个文件夹(命名脚本),其中包含一些 python 脚本但不是使用./manage.py startapp scripts
. 除了这个文件夹,还有一个modelsapp
django 应用程序(其中包含我的模型),然后是包含andproject
的文件夹。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()
以完成现在的工作。