2011-08-08 9 views
2

는 내가 뭘하려고했던 것은 Shastra이상한 장고 가져 오기 오류

class Shastra(models.Model): 
    something = models.IntegerField() 

    def save(self, *args, **kwargs): 
     post_content(app='shastra', content=self) 
     super(Shastra, self).save(*args, **kwargs) 


# The function being called in the override function 

def post_content(*args, **kwargs): 
    FbApiContent(content = kwargs['content']).save() 


# The model being used by the override function 

from shastra.models import Shastra 

class FbApiContent(models.Model): 

    content = models.ForeignKey(Shastra) 

역 추적 내가 무슨 일이 일어나고 있는지 전혀 모르는

Traceback (most recent call last): 
    File "C:\Documents and Settings\EC.32-SAMUEL\workspace\kiosk\manage.py", line 14, in <module> 
    execute_manager(settings) 
    File "C:\Python26\lib\site-packages\django\core\management\__init__.py", line 438, in execute_manager 
    utility.execute() 
    File "C:\Python26\lib\site-packages\django\core\management\__init__.py", line 379, in execute 
    self.fetch_command(subcommand).run_from_argv(self.argv) 
    File "C:\Python26\lib\site-packages\django\core\management\base.py", line 191, in run_from_argv 
    self.execute(*args, **options.__dict__) 
    File "C:\Python26\lib\site-packages\django\core\management\base.py", line 220, in execute 
    output = self.handle(*args, **options) 
    File "C:\Python26\lib\site-packages\django\core\management\commands\runserver.py", line 67, in handle 
    self.run(*args, **options) 
    File "C:\Python26\lib\site-packages\django\core\management\commands\runserver.py", line 78, in run 
    self.inner_run(*args, **options) 
    File "C:\Python26\lib\site-packages\django\core\management\commands\runserver.py", line 88, in inner_run 
    self.validate(display_num_errors=True) 
    File "C:\Python26\lib\site-packages\django\core\management\base.py", line 249, in validate 
    num_errors = get_validation_errors(s, app) 
    File "C:\Python26\lib\site-packages\django\core\management\validation.py", line 36, in get_validation_errors 
    for (app_name, error) in get_app_errors().items(): 
    File "C:\Python26\lib\site-packages\django\db\models\loading.py", line 146, in get_app_errors 
    self._populate() 
    File "C:\Python26\lib\site-packages\django\db\models\loading.py", line 64, in _populate 
    self.load_app(app_name) 
    File "C:\Python26\lib\site-packages\django\db\models\loading.py", line 78, in load_app 
    models = import_module('.models', app_name) 
    File "C:\Python26\lib\site-packages\django\utils\importlib.py", line 35, in import_module 
    __import__(name) 
    File "C:\Documents and Settings\EC.32-SAMUEL\workspace\kiosk\..\kiosk\shastra\models.py", line 10, in <module> 
    from fb_api.api import * 
    File "C:\Documents and Settings\EC.32-SAMUEL\workspace\kiosk\..\kiosk\fb_api\api.py", line 7, in <module> 
    from fb_api.models import FbApiUser 
    File "C:\Documents and Settings\EC.32-SAMUEL\workspace\kiosk\..\kiosk\fb_api\models.py", line 41, in <module> 
    from shastra.models import Shastra 
ImportError: cannot import name Shastra 

라는 내 모델 중 하나의 저장 방법을 재정의했다 : |, 어떤 통찰력이라도 감사 할 것입니다

답변

7

순환 수입. 이를 해결하거나 문자열을 FK 인수 (models.ForeignKey('app.Shastra'))로 사용하십시오.

3

순환 가져 오기가있는 것 같습니다.

shastra\models.pyfrom fb_api.api import *

fb_api\api.py 방금 ​​모듈에서 하나 개의 클래스를 가져올 경우에도 from fb_api.models import FbApiUser

fb_api\models.pyfrom shastra.models import Shastra

을하고하고있는하고있는 전체 모듈이 네임 스페이스의 채우기 위해 실행됩니다.