这是我的帖子模型:
class Post(UserMixin,db.Model):
__tablename__ = "posts"
id = db.Column(db.Integer,primary_key = True)
posts = db.Column(db.String(500))
post_author = db.Column(db.Integer,db.ForeignKey("users.id"))
这是我的用户模型:
class User(UserMixin,db.Model):
__tablename__ = "users"
id = db.Column(db.Integer,primary_key = True)
username = db.Column(db.String(60),unique = True, index = True)
first_name = db.Column(db.String(60),unique = True, index = True)
last_name = db.Column(db.String(60), index = True)
password = db.Column(db.String(100))
user_post = db.relationship("Post",secondary = post , primaryjoin = (post.c.user_id == id), secondaryjoin = (post.c.post_id == Post.id),
backref = db.backref("authored_post",lazy = "dynamic"),lazy = "dynamic")
现在我在名为authored_post
这是我试过的
db.session.add(Post(posts = posted, post_author = current_user.id, authored_post = current_user))
因为基本上我要做的就是查询所有帖子,找出谁通过backref创作了每个帖子,这样我就可以获得last_name
属性但是authored_post = current_user
会返回错误表示User object is not iterable
的错误。
也无效Post.authored_post.append(current(user))
它也会引发错误。那么我们如何解决这个问题?
答案 0 :(得分:0)
以及其他遇到此类问题的人的参考。
我解决了这个问题
class Post(UserMixin,db.Model):
__tablename__ = "posts"
id = db.Column(db.Integer,primary_key = True)
posts = db.Column(db.String(500))
post_author = db.Column(db.Integer,db.ForeignKey("users.id"))
author = db.relationship("Users")
我的解决方法只是添加另一种关系,所以当你做
时db.session.add(Post(posts = posted, post_author = current_user.id, author = current_user))
如果您查询所有这样的Post对象并获取每个单独对象:
post = [i for i in Post.query.all()]
您现在可以访问Users
模型上的所有属性了!
只是这样做:
for i in post:
print(i.author.first_name,i.author.last_name)
我是Sqlalchemy的新手,对于python来说还是新手。我希望帮助一些新手