私はFlask-SQLAlchemyを持つFlaskアプリを持っています。私はユーザーから旅行への1対1の関係を作ろうとしています。私は、SQLAlchemyのdeclarative_baseを使用すると動作しますが、Flask-SQLAlchemyのdb.Modelを使用すると動作しません。モデルは、ここでFlask-SQLAlchemy 1対多の関係が名前の検索に失敗しました
sqlalchemy.exc.InvalidRequestError: When initializing mapper Mapper|User|User, expression 'Trip' failed to locate a name ("name 'Trip' is not defined"). If this is a class name, consider adding this relationship() to the <class 'models.user.User'> class after both dependent classes have been defined.
されています:
私は次のエラーを取得しています
database.py
from flask import abort
from flask_sqlalchemy import SQLAlchemy
from sqlalchemy import exc
db = SQLAlchemy()
class Mixin(db.Model):
__abstract__ = True
id = db.Column(db.Integer, primary_key=True)
date = db.Column(db.DateTime, default=db.func.now())
date_changed = db.Column(
db.DateTime, nullable=True, onupdate=db.func.now())
date_to = db.Column(db.DateTime, nullable=True)
user.py
from database import Mixin, db
class User(Mixin, db.Model):
__tablename__ = 'User'
trips = db.relationship(
'Trip',
backref=db.backref('user', lazy='joined'),
lazy='dynamic'
)
旅。 py
from database import Mixin, db
class Trip(Mixin, db.Model):
__tablename__ = 'Trip'
title = db.Column(db.String(100), nullable=False)
description = db.Column(db.String(250), nullable=False)
user_id = db.Column(
db.Integer,
db.ForeignKey('User.id'),
nullable=False
)
をファイルあなたはおそらく、すべての 'trip'モジュールをインポートしていない、またはあなたがある場合は、適切なタイミングでそれをやっていません。 – univerio
しかし、SQLAlchemyのdeclarative_baseを使用すると、なぜ動作しますか? – BrHa
私は知らないので、コードの残りの部分を投稿する必要があります。 – univerio