tôi đang cố gắng để thực hiện một nhiều với nhiều mối quan hệ ở đây trong Flask-SQLAlchemy, nhưng có vẻ như tôi không biết làm thế nào để lấp đầy "nhiều đến nhiều cơ sở dữ liệu nhận dạng ". Bạn có thể vui lòng giúp tôi hiểu những gì tôi đang làm sai và nó trông như thế nào?Flask SQLAlchemy nhiều-nhiều dữ liệu chèn
class User(db.Model):
__tablename__ = 'users'
user_id = db.Column(db.Integer, primary_key=True)
user_fistName = db.Column(db.String(64))
user_lastName = db.Column(db.String(64))
user_email = db.Column(db.String(128), unique=True)
class Class(db.Model):
__tablename__ = 'classes'
class_id = db.Column(db.Integer, primary_key=True)
class_name = db.Column(db.String(128), unique=True)
và sau đó cơ sở dữ liệu nhận dạng của tôi:
student_identifier = db.Table('student_identifier',
db.Column('class_id', db.Integer, db.ForeignKey('classes.class_id')),
db.Column('user_id', db.Integer, db.ForeignKey('users.user_id'))
)
cho đến nay nó trông như thế này khi tôi cố gắng để chèn dữ liệu vào cơ sở dữ liệu.
# User
user1 = User(
user_fistName='John',
user_lastName='Doe',
user_email='[email protected]')
user2 = User(
user_fistName='Jack',
user_lastName='Doe',
user_email='[email protected]')
user3 = User(
user_fistName='Jane',
user_lastName='Doe',
user_email='[email protected]')
db.session.add_all([user1, user2, user3])
db.session.commit()
# Class
cl1 = Class(class_name='0A')
cl2 = Class(class_name='0B')
cl3 = Class(class_name='0C')
cl4 = Class(class_name='Math')
cl5 = Class(class_name='Spanish')
db.session.add_all([cl1, cl2, cl3, cl4, cl5])
db.session.commit()
Bây giờ vấn đề của tôi là, làm cách nào để thêm vào nhiều cơ sở dữ liệu, vì tôi thực sự không thể tạo đối tượng 'student_identifier'? Nếu tôi có thể nó có thể trông giống như thế này:
# Student Identifier
sti1 = StiClass(class_id=cl1.class_id, class_name=user1.user_id)
sti2 = StiClass(class_id=cl3.class_id, class_name=user1.user_id)
sti3 = StiClass(class_id=cl4.class_id, class_name=user1.user_id)
sti4 = StiClass(class_id=cl2.class_id, class_name=user2.user_id)
db.session.add_all([sti1, sti2, sti3, sti4])
db.session.commit()
Làm cách nào tôi có thể chèn vào nhiều bảng với nhiều ORM?