我的工作區和任務的藍圖與工作區工作區/ apis.py和任務視圖任務/ apis.py瓶瓶進口錯誤
我想在工作區/ apis.py任務模型導入任務類,但我不能。
工作空間模型:
class Workspace(db.Model):
__tablename__ = 'workspace'
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.Unicode(50), nullable=False)
created_on = db.Column(db.DateTime, default=datetime.utcnow)
users = db.relationship('User', secondary=workspace_users,
backref=db.backref('workspaces', lazy='dynamic'), lazy='dynamic')
owners = db.relationship('User', secondary=workspace_owners,
backref=db.backref('own_workspaces', lazy='dynamic'), lazy='dynamic')
teams = db.relationship('Team', cascade="all,delete", backref='workspace', lazy='dynamic')
projects = db.relationship('Project', cascade="all,delete", backref='workspace', lazy='dynamic')
tags = db.relationship('Tag', cascade="all,delete", backref='workspace', lazy='dynamic')
user_costs = db.relationship('UserRate', backref='workspace', lazy='dynamic')
clients = db.relationship('Client', backref='workspace', lazy='dynamic')
和任務模式:
class Task(db.Model):
__tablename__ = 'task'
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.Unicode(120), nullable=False)
start_time = db.Column(db.DateTime, default=datetime.datetime.utcnow)
end_time = db.Column(db.DateTime)
second = db.Column(db.Integer)
rate = db.Column(db.Float)
status = db.Column(db.Boolean, default=True)
project_id = db.Column(db.Integer, db.ForeignKey('project.id'))
owner_id = db.Column(db.Integer, db.ForeignKey('user.id'))
tags = db.relationship('Tag', secondary=task_tag,
backref=db.backref('tasks', lazy='dynamic'), lazy='dynamic')
在任務視圖我可以導入工作空間類,但在工作區視圖我無法導入任務類。
錯誤:
Traceback (most recent call last):
File "./run.py", line 8, in <module>
from project.application import create_app, db
File "/home/itmard/git/toggle-dev/project/__init__.py", line 1, in <module>
from project.application import create_app
File "/home/itmard/git/toggle-dev/project/application.py", line 5, in <module>
from project.apps.task.models import calculate_user_rate
File "/home/itmard/git/toggle-dev/project/apps/task/__init__.py", line 12, in <module>
from . import apis
File "/home/itmard/git/toggle-dev/project/apps/task/apis.py", line 12, in <module>
from project.apps.task.models import Task
File "/home/itmard/git/toggle-dev/project/apps/task/models.py", line 7, in <module>
from project.apps.user_rate.models import UserRate
File "/home/itmard/git/toggle-dev/project/apps/user_rate/__init__.py", line 8, in <module>
from . import views
File "/home/itmard/git/toggle-dev/project/apps/user_rate/views.py", line 10, in <module>
from project.apps.user_rate.forms import AddUserRateForm
File "/home/itmard/git/toggle-dev/project/apps/user_rate/forms.py", line 11, in <module>
from project.apps.workspace.models import workspaces
File "/home/itmard/git/toggle-dev/project/apps/workspace/__init__.py", line 12, in <module>
from . import apis
File "/home/itmard/git/toggle-dev/project/apps/workspace/apis.py", line 12, in <module>
from project.apps.task.models import Task
ImportError: cannot import name Task
項目結構:
├── project
│ ├── application.py
│ ├── apps
│ │ ├── task
│ │ │ ├── apis.py
│ │ │ ├── forms.py
│ │ │ ├── __init__.py
│ │ │ ├── __init__.py~
│ │ │ ├── models.py
│ │ │ └── views.py
│ │ └── workspace
│ │ ├── apis.py
│ │ ├── forms.py
│ │ ├── __init__.py
│ │ ├── models.py
│ │ └── views.py
你有一個循環導入。您需要重新安排代碼/導入以避免它。 – davidism 2014-08-31 07:11:50