我正在尝试使用flask和sqlalchemy来实现一个应用程序。
这是我的models.py
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'))
我创建了User对象,并且还创建了post,它们是相关的。 并且backref不起作用。
我的意思是在模板中。
{{ post.author.nickname }}
结果为无。 我不知道为什么这不起作用。 user_id列,ForeignKey正在运行。