我是python的新手。我正在嘗試創(chuàng)建表并練習(xí)如何使用 Flask-SQLAlchemy 來創(chuàng)建聲明性模型。當(dāng)我運行時db.create_all(),出現(xiàn)以下錯誤。我不確定哪個部分是錯誤的。希望有經(jīng)驗的朋友幫幫我。sqlalchemy.exc.ArgumentError: Mapper Mapper|TeacherUser|teacher_user could not assemble any primary key columns for mapped table 'teacher_user'user -> search_condition 是一對一的user <-> Teacher 是多對多的,teacherUser 是這兩個表之間的關(guān)系表。用戶 -> 類是多對一的用戶 -> 書是一對多的這是我的模型架構(gòu)from flaskr import dbfrom sqlalchemy import textfrom datetime import datetimefrom sqlalchemy.dialects.mysql import ENUM, JSONclass User(db.Model): __tablename__ = 'user' user_id = db.Column(db.Integer, primary_key=True) username = db.Column(db.String(50), unique=True, nullable=False) search_condition = db.relationship('SearchCondition', uselist=False, backref='user') teachers = db.relationship('TeacherUser', backref=db.backref('users', lazy='joined'), lazy='dynamic') class_id = db.Column(db.Integer, db.ForeignKey('classes.id')) classes = db.relationship('Classes', backref='classes') books = db.relationship('Book',backref='book') def __init__(self, username, email): self.username = username self.email = email def __repr__(self): return '<Demo %r>' % self.username def save(self): db.session.add(self) db.session.commit()class SearchCondition(db.Model): __tablename__ = 'search_condition' search_condition_id = db.Column(db.Integer, primary_key=True) user_id = db.Column(db.Integer, db.ForeignKey('user.user_id')) condition = db.Column(JSON, server_default=text(r"{}"))class TeacherUser(db.Model): __tablename__ = 'teacher_user' user_id = db.Column(db.Integer, db.ForeignKey('user.user_id')) teacher_id = db.Column(db.Integer, db.ForeignKey('teacher.teacher_id'))class Teacher(db.Model): __tablename__ = 'teacher' teacher_id = db.Column(db.Integer, primary_key=True) participants = db.relationship('TeacherUser', backref=db.backref('teachers', lazy='joined'), lazy='dynamic')
Flask sqlalchemy 無法創(chuàng)建表
慕桂英3389331
2021-07-15 18:12:40