我正在使用通过cookiecutter安装的django(在virtualenv中运行)。在文件的顶部,我尝试设置django env。像这样:
import os
import sys
import django
sys.path.append('/vagrant/my_project/my_project/')
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'config.settings.local')
django.setup()
from models import KeyO # This one loads models.py from the same directory.
models.py看起来像这样:
from django.db import models
from django.conf import settings
from decimal import Decimal
from django.core.validators import MaxValueValidator
from djmoney.models.fields import MoneyField
class KeyO(models.Model):
keyword = models.CharField('Keyword', max_length=1000, unique=True)
...
这是错误:
RuntimeError:模型类models.KeyO未声明显式 app_label并且不在INSTALLED_APPS的应用程序中。
我没有修改apps.py,我的设置文件最后加载了这个应用程序。有什么想法吗?
注意:使用py3.5和django 1.10 dev
编辑:
本地设置:https://gist.github.com/daniel1943/6148f27e157bdb251666 常见(主要设置):https://gist.github.com/daniel1943/76c46fcfaaa996c9fd66
答案 0 :(得分:2)
所以这是解决方案:
而不是使用以下内容导入模型:
from models import KeyO
这样做:
from myapp.models import KeyO
运行独立的django 1.9+脚本的整个代码:
import os
import sys
import django
sys.path.append("/media/sf_VM_desktop/myproject/") #path to your settings file
os.environ['DJANGO_SETTINGS_MODULE'] = 'myproject.settings'
django.setup()
from keywords.models import KW