试图将django脚本作为独立脚本运行 - 模型错误

时间:2016-01-13 02:23:02

标签: django

我正在使用通过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

1 个答案:

答案 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