[英]flask_sqlalchemy TypeError on count()
在 chinook.sqlite db 中,下面两个表是相关的。
艺术家
专辑
我得到了反映的数据库元数据
app = Flask(__name__, instance_relative_config=True)
db = SQLAlchemy()
db.app = app
db.init_app(app)
db.Model.metadata.reflect(db.engine)
在我的 model.py
from app import db
class Album(db.Model):
__table__ = db.Model.metadata.tables['albums']
artist = db.relationship('Artist' , backref = 'artists')
class Artist(db.Model):
__table__ = db.Model.metadata.tables['artists']
album = db.relationship('Album', backref = 'albums')
在视图中,
{{ 艺术家.album.count() }}
给出错误, TypeError: count() 只接受一个参数(给定 0)
我究竟做错了什么?
ORM 关系尚未配置为 dynamic ,因此您调用的是Query.count()
而不是list.count()
。 使用len()
:
{{ len(artist.albums) }}
您的 model 定义还定义了额外的关系属性。 而不是backref
,这是在另一端创建新关系属性的简写,使用back_populates
将两个边链接在一起:
class Album(db.Model):
__table__ = db.Model.metadata.tables['albums']
artist = db.relationship('Artist', back_populates = 'albums')
class Artist(db.Model):
__table__ = db.Model.metadata.tables['artists']
albums = db.relationship('Album', back_populates = 'artist')
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.