2010-02-06 5 views
3

avant de regarder mon code, voir http://www.b-list.org/weblog/2007/sep/22/standalone-django-scripts/pourquoi mon code django ne peut pas être un «scripts autonome Django

je veux être un script autonome Django

voici mon code:

from django.db import models 
from djangosphinx.models import SphinxSearch,SphinxQuerySet 


import os 
os.environ["DJANGO_SETTINGS_MODULE"] = "sphinx_test.settings" 

from django.core.management import setup_environ 
from sphinx_test import settings 

setup_environ(settings) 

DJANGO_SETTINGS_MODULE=sphinx_test.settings 

class File(models.Model): 
    name = models.CharField(max_length=200) 
    tags = models.CharField(max_length=200) 

    objects = models.Manager() 
    search = SphinxQuerySet(index="test1") 


import datetime 


class Group(models.Model): 
    name = models.CharField(max_length=32) 

class Document(models.Model): 
    group  = models.ForeignKey(Group) 
    date_added = models.DateTimeField(default=datetime.datetime.now) 
    title  = models.CharField(max_length=32) 
    content  = models.TextField() 

    search  = SphinxQuerySet(File,index="test1") 

    class Meta: 
     db_table = 'documents' 

et c'est retraçage:

Traceback (most recent call last): 
    File "D:\zjm_code\sphinx_test\models.py", line 1, in <module> 
    from django.db import models 
    File "D:\Python25\Lib\site-packages\django\db\__init__.py", line 10, in <module> 
    if not settings.DATABASE_ENGINE: 
    File "D:\Python25\Lib\site-packages\django\utils\functional.py", line 269, in __getattr__ 
    self._setup() 
    File "D:\Python25\Lib\site-packages\django\conf\__init__.py", line 38, in _setup 
    raise ImportError("Settings cannot be imported, because environment variable %s is undefined." % ENVIRONMENT_VARIABLE) 
ImportError: Settings cannot be imported, because environment variable DJANGO_SETTINGS_MODULE is undefined. 

Répondre

3

le code que vous utilisez pour régler le django Le module de paramètres doit venir avant tout code lié à django, y compris les importations de django db en haut du script.

Questions connexes