同じモジュールに2つのモデルがあります。models
です。それらは1-1の関係であり、SQLAlchemy docsごとに構成されています。SQLAlchemyモデル循環インポート
Vehicle.py
from models.AssetSetting import AssetSetting
class Vehicle(Base):
__tablename__ = 'vehicles'
vehicle_id = Column(Integer, primary_key=True)
...
settings = relationship('AssetSetting', backref=backref('asset_settings'))
AssetSetting.py
from models.Vehicle import Vehicle
class AssetSetting(Base):
__tablename__ = 'asset_settings'
asset_alert_setting_id = Column(Integer, primary_key=True, autoincrement=True)
...
vehicle = relationship('vehicles', foreign_keys=Column(ForeignKey('vehicles.vehicle_id')))
私は(つまり、ForeignKey('vehicles.vehicle_id')
)文字列関係の建物を使用している場合、私はエラーを取得する:
sqlalchemy.exc.InvalidRequestError:
When initializing mapper Mapper|AssetSetting|asset_settings, expression 'vehicles' failed to locate a name ("name 'vehicles' is not defined").
If this is a class name, consider adding this relationship() to the <class 'models.AssetSetting.AssetSetting'> class after both dependent classes have been defined.
Traceback (most recent call last):
File "tracking_data_runner.py", line 7, in <module>
from models.Tracker import Tracker
File "/.../models/Tracker.py", line 5, in <module>
from models.Vehicle import Vehicle
File "/.../models/Vehicle.py", line 13, in <module>
from models.Tracker import Tracker
ImportError: cannot import name 'Tracker'
私は同じパッケージ内のファイルを置くことによってこの問題を解決する可能性が信じているが、それらを分離しておくことを好むだろう:私はクラスのマッピングを使用する場合は、私は古典的な円形インポートエラーが発生します。思考?
申し訳ありませんがそれは私の上のコピー/貼り付けエラーでした質問を書くときには – mam8cc