데이터베이스에 MongoEngine을 사용하는 Python/Flask 앱이 있습니다. 내 모델을 정의했고, 최신 모델이 추가 될 때까지 모든 것이 작동했습니다. 나는 두 모델이 서로를 참조하고 재귀 수입 루프를 일으키기 때문에 문제가 발생한다고 생각한다. 나는 그것을 해결하기 위해 무엇을해야할지 모르겠다. 이것은 서로 참조하는 많은 모델을 가진 커다란 프로젝트가 될 것입니다. 이 특정 사례는 사용자가 관행에 있고 관행에 사용자가 있기 때문에 많은 관계가 있습니다.Python 재귀 가져 오기 문제
사용자 모델
from utilities.common import utc_now_ts as now
from mongoengine import *
from models.practice import Practice
class User(Document):
name = StringField()
created = IntField(db_field="cr", default=now)
practices = ListField(ReferenceField(Practice))
그리고 연습 모델
from utilities.common import utc_now_ts as now
from mongoengine import *
from models import user
class Practice(Document):
name = StringField()
created = IntField(db_field="cr", default=now)
users = ListField(ReferenceField(user.User))
admins = ListField(ReferenceField(user.User))
내가 오류 내가 같은 문제로 실행하는 두 개의 다른 모델을 가지고 ImportError: cannot import name 'Practice'
입니다. 모델은 다른 모델로 가져 오기 작업을 추가 할 때까지 제대로 작동했습니다.
재귀 적으로 참조되는 이유가 있습니까? 이 문제를 해결하는 가장 좋은 방법은 종속성 중 하나를 제거하는 모델 리팩터가 될 가능성이 큽니다. –
변경 방법을 알려주시겠습니까? 각 모델에 대한 사용자 목록이 있어야하며 각 사용자에 대한 그룹 목록이 있어야합니다. 이것은 주제를 검색 할 때 사람들이 추천 한 방법이었습니다. – Jhorra