Я создал отношение многие ко многим согласно приведенному ниже коду, но я добавил дополнительные столбцы в таблицу сопоставлений.Я хочу получить эти столбцы по конкретному идентификатору пользователя.Может кто-нибудь посоветовать, как можно это сделать?Я прочитал много постов, но ни в одном из них нет дополнительных столбцов.
Если я делаю:
u = Users.query.filter_by(id='8').first()
u.subscriptions[0].id
Я вижу данные из таблицы подписки, но если я делаю:
u.subscriptions[0].subscription_id
OR
u.subscriptions[0].User_Subscription
Я получаю объект "Подписка" не имеетатрибут, так как я пытаюсь получить данные столбцов в таблице связей User_Subscription.
User_Subscription = db.Table('user_subscription',
db.Column('user_id', db.Integer, db.ForeignKey('users.id')),
db.Column('subscription_id', db.Integer, db.ForeignKey('subscription.id')),
db.Column('stripe_subscription_id', db.String(100), nullable=True),
db.Column('paypal_subscription_id', db.String(100), nullable=True)
)
class Subscription(db.Model):
__tablename__ = "subscription"
id = db.Column(db.Integer, primary_key=True)
subscription_name = db.Column(db.String(100), unique=True, nullable=False)
subscription_desc = db.Column(db.String(100), unique=False, nullable=False)
date_created = db.Column(db.DateTime, default=datetime.datetime.utcnow)
date_updated = db.Column(db.DateTime, default=datetime.datetime.utcnow, onupdate=datetime.datetime.utcnow)
subscriptions = db.relationship('Users', secondary=User_Subscription, backref= db.backref('subscriptions', lazy='dynamic'))
class Users(db.Model, UserMixin):
__tablename__ = "users"
id = db.Column(db.Integer, primary_key=True)
firstname = db.Column(db.String(50), unique=False, nullable=False)
lastname = db.Column(db.String(50), unique=False, nullable=False)
email = db.Column(db.String(120), unique=True, nullable=False)
password = db.Column(db.String(60), nullable=False)
date_created = db.Column(db.DateTime, default=datetime.datetime.utcnow)
date_updated = db.Column(db.DateTime, default=datetime.datetime.utcnow, onupdate=datetime.datetime.utcnow)
user_status_id = db.Column(db.String(2), db.ForeignKey('user_status.id'))