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