[解決した]exc.NoReferencedTableError: Foreign key associated with column (painting,).ori...
[解決した]exc.NoReferencedTableError: Foreign key associated with column ‘(‘painting’,).origin_id’ could not find table ‘origin’ with which to generate a foreign key to target column ‘id’
データベースを作成するときは、一対一、一対多、多対多時報エラーを構築します.次に、一対多例を挙げます.
原因1
テーブル名を設定する文の後ろに「,」を付けました.
解决方法:“,”を削除すればよい
原因2
テーブル名が呼び出し時のテーブル名と一致しません
解決策:設定されたテーブル名を削除し、デフォルトのテーブル名を呼び出すと になります.が呼び出すとき、呼び出し設定のテーブル名 デフォルトのテーブル名
デフォルトの表名は小文字で、アルパカ法で命名された表名には下線分割があります.
データベースを作成するときは、一対一、一対多、多対多時報エラーを構築します.次に、一対多例を挙げます.
原因1
テーブル名を設定する文の後ろに「,」を付けました.
#
class Origin(db.Model):
__tablename__ = 'origin', #* *
id = db.Column(db.Integer, primary_key=True) #
url = db.Column(db.String(64), nullable=False) # nullable
paintings = db.relationship("Painting", backref="origin") # 【 :painting.origin.url
#
class Painting(db.Model):
__tablename__ = 'painting',
id = db.Column(db.Integer, primary_key=True) #
url = db.Column(db.String(64), nullable=False) # nullable
origin_id = db.Column(db.Integer, db.ForeignKey("origin.id")) # 【
解决方法:“,”を削除すればよい
原因2
テーブル名が呼び出し時のテーブル名と一致しません
#
class Origin(db.Model):
__tablename__ = 'originaaa' #* *
id = db.Column(db.Integer, primary_key=True) #
url = db.Column(db.String(64), nullable=False) # nullable
paintings = db.relationship("Painting", backref="origin") # 【 :painting.origin.url
#
class Painting(db.Model):
__tablename__ = 'painting',
id = db.Column(db.Integer, primary_key=True) #
url = db.Column(db.String(64), nullable=False) # nullable
origin_id = db.Column(db.Integer, db.ForeignKey("origin.id")) # 【
#* *
解決策:
デフォルトの表名は小文字で、アルパカ法で命名された表名には下線分割があります.
class User(db.Model) , user
class StudentUser(db.Moedl) , student_user