我对Python和编程很新。我可以在逻辑上使用一些帮助。
我有3个表,用户,帖子,评论。表注释有一列" user_id"其中有一个Foreign_Key到users列" id"。也作为post_id与FK到post_id。
comments.user_id = users.id&& comments_post_id = posts.id
查询我正在使用的特定帖子:
post = Posts.query.filter_by(id=post_id).first_or_404()
查询我正在使用的评论:
comments = Comments.query.filter_by(post_id=post_id).order_by(Comments.time.desc()).all()
我想从users表中获取comments.user_id的用户名....这是我的逻辑被扰乱的地方。
使用FK可以直接引用Users.username吗?或者FK只是映射一个关系,所以我可以运行查询。其中comments.user_id = Users.id ....获取用户名和所有内容。我觉得我这样做效率很低。
我想将comment.user_id替换为" Users.username,其中comment.user_id = user_id"
{% if comments %}
{% for comment in comments %}
{{ comment.user_id }}
{{ comment.time }}
{{ comment.comment }}
{% endfor %}
{% endif %}
我认为我需要做的是在评论中创建一个新专栏,comments.user_username&给它一个用户名的FK。我一直收到150错误,列相同。相同的排序规则,数据类型和长度。
答案 0 :(得分:1)
您可以按如下方式定义SQLAlchemy类型为relationship
的属性:
class Comment(db.Model):
id = db.Column(db.Integer(), primary_key=1)
content = db.Column(db.Text(), nullable=0)
create_user_id = db.Column(db.Integer(), db.ForeignKey("user.id"))
create_user = db.relationship("User", foreign_keys=create_user_id)
post_id = dn.Column(db.Integer(), db.ForeignKey("post.id"))
您可以在模板文件中编写comment.create_user.username
。