Python 烧瓶sqlalchemy backref不起作用
我正在尝试使用flask和sqlalchemy实现一个应用程序 这是我的模特Python 烧瓶sqlalchemy backref不起作用,python,flask,sqlalchemy,Python,Flask,Sqlalchemy,我正在尝试使用flask和sqlalchemy实现一个应用程序 这是我的模特 from blog import db from blog import bcrypt class Base(db.Model): __abstract__ = True id = db.Column(db.Integer, primary_key=True) class User(Base): __tablename__ = "user" email = db.Column(
from blog import db
from blog import bcrypt
class Base(db.Model):
__abstract__ = True
id = db.Column(db.Integer, primary_key=True)
class User(Base):
__tablename__ = "user"
email = db.Column(db.String(128), unique=True)
password = db.Column(db.String(256))
nickname = db.Column(db.String(128))
posts = db.relationship('Post', backref="author", lazy="dynamic")
is_admin = db.Column(db.Boolean, default=False)
is_active = db.Column(db.Boolean, default=False)
def set_password(self, password):
self.password = bcrypt.generate_password_hash(password=password)
def check_password_hash(self, password):
result = bcrypt.check_password_hash(self.password, password)
if result:
return True
else:
return False
class Post(Base):
__tablename__ = "post"
title = db.Column(db.String(64))
body = db.Column(db.Text)
user_id = db.Column(db.Integer, db.ForeignKey('user.id'))
我创建了用户对象,也创建了帖子,它们是相关的。
而backref不起作用
我的意思是在模板中
{{ post.author.nickname }}
结果是没有。
我不知道这为什么不起作用。
user\u id列,ForeignKey正在工作。您的脚本在我这边运行得很好。你确定post.author是None吗?它会引发异常……是的。。。我不知道为什么它不起作用。。我的朋友们都很好。。但我的不是。。。是否需要重新创建db?是否确定在关闭
会话之前加载了用户
对象?如何从数据库加载post
实例?我使用post.query.filter\u by(filter)从SQLAlchemy加载post。首先()我认为不需要从会话加载用户查询。。