【发布时间】:2019-06-28 09:17:35
【问题描述】:
我在我的 Django 应用程序中导入模型时遇到问题。 我的应用程序 API 已安装并迁移并在管理员中可见我可以通过管理员添加记录,以便模型正常工作。
由于某种原因,当我尝试将模型导入到 signals.py 时,我得到一个错误
我正在使用 Django 2.0
signals.py 与模型位于同一目录中。 Django 是否改变了您导入模型的方式?我的印象就是这样。
文件“c:/Users/Acer/PycharmProjects/mbapi/api/signals.py”,第 5 行,在 from api import testModel ModuleNotFoundError: No module named 'api
信号.py
from django.dispatch import receiver
from django.db.models.signals import pre_save, pre_delete, post_save,
post_delete
from django.dispatch import receiver
from api.models import testModel
@receiver(post_save, sender=testModel)
def update(sender, instance, created, **kwargs):
if instance.status == 'inplay':
print('this is inplay')
send()
models.py
from django.db import models
# Create your models here.
class testModel(models.Model):
player1 = models.CharField(null=True, max_length=50)
player2 = models.CharField(null=True, max_length=50)
Player1_odds = models.FloatField(null=True)
Player2_odds = models.FloatField(null=True)
status = models.CharField(null=True, max_length=50)
complete = models.CharField(null=True, max_length=50)
class inplay_model(models.Model):
now_inplay = models.CharField(null=True, max_length=10)
堆栈跟踪
(venv) C:\Users\Acer\PycharmProjects\mbapi>c:/Users/Acer/PycharmProjects/mbapi/venv/Scripts/python.exe c:/Users/Acer/PycharmProjects/mbapi/api/signals.py
Traceback (most recent call last):
File "c:/Users/Acer/PycharmProjects/mbapi/api/signals.py", line 5, in <module>
from api.models import testModel
ModuleNotFoundError: No module named 'api'
(venv) C:\Users\Acer\PycharmProjects\mbapi>
【问题讨论】:
-
此错误日志消息与您粘贴的代码不匹配。你能显示完整的错误日志吗?
-
为什么不直接使用
from .models import testModel?这样您的导入将独立于应用名称。 -
@Paandittya 当我尝试在这里遇到不同的错误时。 (venv) C:\Users\Acer\PycharmProjects\mbapi>c:/Users/Acer/PycharmProjects/mbapi/venv/Scripts/python.exe c:/Users/Acer/PycharmProjects/mbapi/api/signals.py Traceback (最近一次通话):文件“c:/Users/Acer/PycharmProjects/mbapi/api/signals.py”,第 5 行,在
from .models import testModel ModuleNotFoundError: No module named 'main.模型'; 'main' 不是包 -
可以假设您没有意外删除任何 init.py 文件或调整任何 django 生成的文件吗?
-
@Paandittya 那里的所有 init.py 文件