4
我有这SQLAlchemy的(使用瓶SQLAlchemy的)对象中定义:将数据添加到相关表的SQLAlchemy
class User(db.Model):
id = db.Column(db.Integer, primary_key=True)
username = db.Column(db.String(20), unique=True)
password = db.Column(db.String(30))
email = db.Column(db.String(45), unique=True)
friends = db.relationship('Friend', backref='user',
lazy='dynamic')
def __init__(self, username, password, email):
self.username = username
self.password = password
self.email = email
def __repr__(self):
return "<User('%s','%s','%s')>" % (self.username, self.email, self.id)
class Friend(db.Model):
id = db.Column(db.Integer, primary_key=True)
userId = db.Column(db.Integer, db.ForeignKey('user.id'))
friendId = db.Column(db.Integer)
created = db.Column(db.DateTime)
def __init__(self, userId, friendId):
self.userId = userId
self.friendId = friendId
self.created = datetime.datetime.now()
def __repr__(self):
return "<Friend(%i,%i)>" % (self.userId, self.friendId)
据我了解添加好友我应该可以做这样的事情:
首先获得用户:
MyUser = bpdata.User.query.filter_by(id=1).first()
获取朋友:
MyFriend = bpdata.User.query.filter_by(id=2).first()
现在我想这样做:
MyUser.Friends.Append(MyFriend)
这是可能的,或者我只是对朋友的ID直接添加到表中的朋友?
我认为你正在创建错误的关系。一个用户有很多朋友,同一个朋友可以成为许多用户的朋友,所以你必须使用M2M而不是O2M。 – Nilesh 2012-03-05 05:24:10