2011-11-14 3 views
2

안녕하세요. 모델이 커지면서 파일을 분할하고 있습니다. 그래서 여기에 다시 문제가 있습니다 :파이썬 + django에서 순환 가져 오기 ?! 어떻게 작동 시키는가?

내 모델; 내 범주 모델에서 "ArticleToCategory"및 다 대 다 관계를 제거하면 잘 작동합니다. 그러나 나는 그들을 필요로한다!

문제를 해결하는 방법은 무엇입니까?

모델 패키지에서 파일을로드하기 위해 model.py가 삭제되었습니다.

카테고리 (models.category) :

class Category(MPTTModel): 
    # relationships 
    from RubeteDjango01.generic.models.article import Article 
    from RubeteDjango01.generic.models.article_to_category import ArticleToCategory 
    articles = m.ManyToManyField(Article, through=ArticleToCategory) 

ArticleToCategory (models.article_to_category) :

from django.db import models as m 

class ArticleToCategory(m.Model): 
    from RubeteDjango01.generic.models.article import Article 
    from RubeteDjango01.generic.models.category import Category 

    article = m.ForeignKey(Article) 
    category = m.ForeignKey(Category) 

    class Meta: 
     db_table = 'articles_to_categories' 
     verbose_name_plural = 'ArticlesToCategories' 

감사

당신은 외래 키가 정확히이 문제를 방지하려면, 문자열을 사용하여 정의 할 수 있습니다

답변

7

.

class Art2C(..): 
    art = m.ForeignKey('Article') 
    from_other_app = m.ForeignKey('other_app.Article') 
+0

감사합니다. 점 표기법을 사용하여 모듈의 절대 경로를 지정하려고했지만 작동하지 않았습니다. 다시 한 번 감사드립니다;) 나에게 많은 시간을 절약 해주었습니다.) ps : 다른 앱에서도 모델을 가져 오는 방법을 보여주었습니다. 그건 정말 대단한 일입니다. : D –

+0

나는 당신에게 다른 것을 물어야한다 : 나는이 표기법을 사용할 다른 곳을 물었다. post_save ...와 같은 것들.? –

+2

다른 곳에서는 가져 오기 문을 함수 호출로 옮겨서 순환 가져 오기 문제를 피할 수 있습니다. – second

관련 문제