[英]Many-Many Relationship in SQL Alchemy
我在SQLAlchemy中定义了多对多关系
tweet2user = db.Table('tweet2user',
db.Column('tweet_id', db.Integer, db.ForeignKey('users.uid')),
db.Column('user_id', db.Integer, db.ForeignKey('tweets.uid'))
)
鸣叫在哪里
class Tweet(db.Model):
__tablename__ = 'tweets'
uid = db.Column(db.Integer, primary_key=True)
tweet = db.Column(db.String(140))
sentiment = db.Column(db.String(100))
sentimentValue = db.Column(db.String(20))
而用户的相关部分是
class User(db.Model):
tweets = db.relationship('Tweet', secondary=tweet2user,
backref=db.backref('tweets', lazy='dynamic'))
现在我是Flask / SQLAlchemy / Python的新手,所以这就是我尝试添加关系的方式
for item in data:
tweetText = item['tweet']
sentiment = item['data']['type']
sentimentValue = item['data']['score']
tweet = Tweet(tweetText,sentiment,str(sentimentValue))
tweets.append(tweet)
if 'email' not in session:
return redirect(url_for('signin'))
user = User.query.filter_by(email = session['email']).first()
user.tweets = tweets
db.session.commit()
但这给我一个错误,表明我的外键约束已被违反。 我做错了什么,我需要在建立这种关系之前将Tweets添加到我的tweets表中。
还有什么区别
class ClassName(db.Model)
和
class ClassName(Base)
发现我的错误
tweet2user = db.Table('tweet2user',
db.Column('tweet_id', db.Integer, db.ForeignKey('users.uid')) <<<...matching to wrong table haha,
db.Column('user_id', db.Integer, db.ForeignKey('tweets.uid')) <<<...same here
)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.