我是Django的新手,我正试图在脚本中导入我的一个模型,就像我们在views.py中做的那样。我得到一个错误:
Traceback (most recent call last):
File "CallCenter\make_call.py", line 3, in <module>
from .models import Campaign
ModuleNotFoundError: No module named '__main__.models'; '__main__' is not a package
我的文件结构是这样的:
MyApp\呼叫中心
CallCenter包含__init__.py
、make_call.py
、models.py
、views.py
,MyApp包含manage.py
from twilio.rest import Client
from twilio.twiml.voice_response import VoiceResponse, Say, Dial, Number, VoiceResponse
from .models import Campaign
def create_xml():
# Creates XML
response = VoiceResponse()
campaign = Campaign.objects.get(pk=1)
response.say(campaign.campaign_text)
return response
xml = create_xml()
print(xml)
1条答案
按热度按时间qvtsj1bj1#
一般来说,最好将“ad-hoc”脚本(例如,您可以从命令行手动运行的任何脚本)重构为management commands。
这样,一旦事情进入你的代码,Django运行时就被正确地设置了,你也可以免费获得命令行解析。
你的
make_call.py
可能会变成这样:CallCenter/management/commands/make_call.py
它将被调用
无论你的
manage.py
在哪里。(请记住在
management/
和management/commands/
文件夹中都有一个__init__.py
文件。)