在另一个文件中导入模型时出错。基本上我想用
>>> from mysite.blog.models import Blog
>>> b = Blog(name='Beatles Blog', tagline='All the latest Beatles news.')
>>> b.save()
但是在python文件[scrap.py]中为模型添加值,但是在导入此文件中的模型时出错。任何帮助??
from models import QuestionBox // Error in this line
错误追溯:
Traceback (most recent call last):
File "scrap.py", line 1, in <module>
from models import QuestionBox
File "/home/sourabh/Django/QASite/QAsite/QAapp/models.py", line 1, in <module>
from django.db import models
File "/home/sourabh/Django/QASite/local/lib/python2.7/site-packages/django/db/__init__.py", line 11, in <module>
if settings.DATABASES and DEFAULT_DB_ALIAS not in settings.DATABASES:
File "/home/sourabh/Django/QASite/local/lib/python2.7/site-packages/django/conf/__init__.py", line 53, in __getattr__
self._setup(name)
File "/home/sourabh/Django/QASite/local/lib/python2.7/site-packages/django/conf/__init__.py", line 46, in _setup
% (desc, ENVIRONMENT_VARIABLE))
django.core.exceptions.ImproperlyConfigured: Requested setting DATABASES, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings.
Dir Tree
.
|-- manage.py
|-- QAapp
| |-- __init__.py
| |-- __init__.pyc
| |-- migrations
| | |-- 0001_initial.py
| | |-- 0001_initial.pyc
| | |-- 0002_initial.py
| | |-- 0002_initial.pyc
| | |-- 0003_initial.py
| | |-- 0003_initial.pyc
| | |-- __init__.py
| | `-- __init__.pyc
| |-- models.py
| |-- models.pyc
| |-- scrap.py
| |-- tests.py
| `-- views.py
|-- QAappdb
`-- QAsite
|-- __init__.py
|-- __init__.pyc
|-- settings.py
|-- settings.pyc
|-- urls.py
`-- wsgi.py
模型文件:
class QuestionBox :
topic = models.CharField(max_length=50)
sub_topic = models.CharField(max_length=50)
question = models.TextField()
options = models.TextField()
correct_option = models.TextField()
total_attempt = models.IntegerField()
correct_attempt = models.IntegerField()
答案 0 :(得分:1)
问题:
1)Python manage.py包含用于数据库的路径设置文件 2)我正在导入一个试图导入DATABASE设置的模型[QuestionBox] 这导致了错误。
修补程序:
1)明确地将这些行包含在你想直接运行的文件[scrap.py]之上。
import os
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "QAsite.settings")
答案 1 :(得分:0)
要检查几件事:
根据您的文件路径,您需要在导入模块之前使用应用名称。这样:
来自QAapp.models导入QuestionBox
检查settings.py
文件的文件路径/目录路径。
您的模型类应为:
类Questionbox(models.Model): ...
希望这有助于解决问题。