Python Django:没有名为';foo';模型导入上下文中的问题
背景信息:Python Django:没有名为';foo';模型导入上下文中的问题,python,django,Python,Django,背景信息:我想使用atomsscript插件运行feeder.py脚本。我首先遇到配置不正确的错误,该错误已按此处建议解决: 然后我遇到RuntimeError:Model class models.AccountInformation没有声明一个显式的app\u标签,并且不在已安装的APPS中的应用程序中。错误通过使用模型导入的绝对路径解决,如下所示 当前问题: 使用上述绝对导入,我收到以下错误: ModuleNotFoundError:没有名为“Dashboard\u app”的模块 我甚至
我想使用atoms
script
插件运行feeder.py
脚本。我首先遇到配置不正确的错误,该错误已按此处建议解决:
然后我遇到RuntimeError:Model class models.AccountInformation没有声明一个显式的app\u标签,并且不在已安装的APPS中的应用程序中。
错误通过使用模型导入的绝对路径解决,如下所示
当前问题:
使用上述绝对导入,我收到以下错误:
ModuleNotFoundError:没有名为“Dashboard\u app”的模块
我甚至可以呈现该应用程序的模板等。所以我很困惑为什么他告诉我该模块不存在。当我删除模型导入时,一切正常。是不是脚本
实例没有正确识别它
我所尝试的:
import django
from django.conf import settings
import zmq
import time
from time import sleep
import uuid
settings.configure()
django.setup()
import sys
print(sys.path)
from Dashboard_app.models import AccountInformation
[...]
# Application definition
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'django.contrib.sites',
#other Apps
'Wiki_app',
'rest_framework',
'Dashboard_app.apps.DashboardAppConfig'
]
from django.db import models
import uuid
# Create your models here.
class AccountInformation(models.Model):
version = models.CharField(max_length=20, blank=False)
DID = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
accountNumber = models.IntegerField(blank=False)
broker = models.CharField(max_length=50, blank=False)
leverage = models.CharField(max_length=10, blank=False)
account_balance = models.FloatField(max_length=15, blank=False)
account_profit = models.FloatField(max_length=15, blank=False)
account_equity = models.FloatField(max_length=15, blank=False)
account_margin = models.FloatField(max_length=15, blank=False)
account_margin_free = models.FloatField(max_length=15, blank=False)
account_margin_leve = models.FloatField(max_length=15, blank=False)
account_currency = models.CharField(max_length=20, blank=False)
class Meta:
db_table = 'AccountInfo'
def __str__(self):
return self.accountNumber
- 删除+重新创建
\uuuuu init\uuuuuuuuuuuy.py
- 已选中要包含在
INSTALLED-APPS
dic中的应用程序设置
- 将导入路径更改为
DASHEX.Dashboard\u应用程序模型
,导致没有名为DASHEX的模块
错误
- 将导入路径更改为
模型
,导致模型类模型。AccountInformation未声明明确的应用程序标签,并且不在已安装应用程序中的应用程序中
错误
- 将
INSTALLED\u APPS
中的应用程序更改为Dashboard\u app
feeder.py脚本:
import django
from django.conf import settings
import zmq
import time
from time import sleep
import uuid
settings.configure()
django.setup()
import sys
print(sys.path)
from Dashboard_app.models import AccountInformation
[...]
# Application definition
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'django.contrib.sites',
#other Apps
'Wiki_app',
'rest_framework',
'Dashboard_app.apps.DashboardAppConfig'
]
from django.db import models
import uuid
# Create your models here.
class AccountInformation(models.Model):
version = models.CharField(max_length=20, blank=False)
DID = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
accountNumber = models.IntegerField(blank=False)
broker = models.CharField(max_length=50, blank=False)
leverage = models.CharField(max_length=10, blank=False)
account_balance = models.FloatField(max_length=15, blank=False)
account_profit = models.FloatField(max_length=15, blank=False)
account_equity = models.FloatField(max_length=15, blank=False)
account_margin = models.FloatField(max_length=15, blank=False)
account_margin_free = models.FloatField(max_length=15, blank=False)
account_margin_leve = models.FloatField(max_length=15, blank=False)
account_currency = models.CharField(max_length=20, blank=False)
class Meta:
db_table = 'AccountInfo'
def __str__(self):
return self.accountNumber
设置。py:
import django
from django.conf import settings
import zmq
import time
from time import sleep
import uuid
settings.configure()
django.setup()
import sys
print(sys.path)
from Dashboard_app.models import AccountInformation
[...]
# Application definition
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'django.contrib.sites',
#other Apps
'Wiki_app',
'rest_framework',
'Dashboard_app.apps.DashboardAppConfig'
]
from django.db import models
import uuid
# Create your models here.
class AccountInformation(models.Model):
version = models.CharField(max_length=20, blank=False)
DID = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
accountNumber = models.IntegerField(blank=False)
broker = models.CharField(max_length=50, blank=False)
leverage = models.CharField(max_length=10, blank=False)
account_balance = models.FloatField(max_length=15, blank=False)
account_profit = models.FloatField(max_length=15, blank=False)
account_equity = models.FloatField(max_length=15, blank=False)
account_margin = models.FloatField(max_length=15, blank=False)
account_margin_free = models.FloatField(max_length=15, blank=False)
account_margin_leve = models.FloatField(max_length=15, blank=False)
account_currency = models.CharField(max_length=20, blank=False)
class Meta:
db_table = 'AccountInfo'
def __str__(self):
return self.accountNumber
型号。py:
import django
from django.conf import settings
import zmq
import time
from time import sleep
import uuid
settings.configure()
django.setup()
import sys
print(sys.path)
from Dashboard_app.models import AccountInformation
[...]
# Application definition
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'django.contrib.sites',
#other Apps
'Wiki_app',
'rest_framework',
'Dashboard_app.apps.DashboardAppConfig'
]
from django.db import models
import uuid
# Create your models here.
class AccountInformation(models.Model):
version = models.CharField(max_length=20, blank=False)
DID = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
accountNumber = models.IntegerField(blank=False)
broker = models.CharField(max_length=50, blank=False)
leverage = models.CharField(max_length=10, blank=False)
account_balance = models.FloatField(max_length=15, blank=False)
account_profit = models.FloatField(max_length=15, blank=False)
account_equity = models.FloatField(max_length=15, blank=False)
account_margin = models.FloatField(max_length=15, blank=False)
account_margin_free = models.FloatField(max_length=15, blank=False)
account_margin_leve = models.FloatField(max_length=15, blank=False)
account_currency = models.CharField(max_length=20, blank=False)
class Meta:
db_table = 'AccountInfo'
def __str__(self):
return self.accountNumber
项目结构:
我认为(几乎可以肯定!)问题在于设置。configure()
;由于您没有指定任何默认设置
,django将使用其默认设置模板(创建新项目时看到的模板),而您的仪表板应用程序
不存在。这就是导致此错误的原因:
更改了模型的导入路径,导致模型类模型。AccountInformation未声明明确的应用程序\u标签,并且不在已安装的应用程序中。错误
尝试在配置中指定您的设置:
from dashex import settings
settings.configure(settings)
就这样。你是上帝!