在django中导入模型时出错

时间:2013-09-17 18:22:03

标签: python django

在另一个文件中导入模型时出错。基本上我想用

>>> 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()

2 个答案:

答案 0 :(得分:1)

问题:

1)Python manage.py包含用于数据库的路径设置文件 2)我正在导入一个试图导入DATABASE设置的模型[QuestionBox]    这导致了错误。

修补程序:

1)明确地将这些行包含在你想直接运行的文件[scrap.py]之上。

import os
   os.environ.setdefault("DJANGO_SETTINGS_MODULE", "QAsite.settings")

答案 1 :(得分:0)

要检查几件事:

  1. 根据您的文件路径,您需要在导入模块之前使用应用名称。这样:

    来自QAapp.models导入QuestionBox

  2. 检查settings.py文件的文件路径/目录路径。

  3. 您的模型类应为:

    类Questionbox(models.Model): ...

  4. 希望这有助于解决问题。