0
我想用SQLAlchemy-DataTable爲jQuery DataTables插件做數據的服務器端處理,但遇到了試圖創建DataTables列模型的問題。使用SQLAlchemy-DataTables在同一個表之間存在多個關係
我的數據模型看起來像:
class Post(db.Model):
__tablename__ = 'posts'
id = db.Column(db.Integer, primary_key=True)
subject = db.Column(db.String(64))
#...
creator_id = db.Column(db.Integer, db.ForeignKey('users.id'))
creator = db.relationship('User', foreign_keys=[creator_id])
created_time = db.Column(db.DateTime(), default=datetime.utcnow)
last_modifier_id = db.Column(db.Integer, db.ForeignKey('users.id'))
last_modifier = db.relationship('User', foreign_keys=[last_modifier_id])
modified_time = db.Column(db.DateTime(), default=datetime.utcnow)
class User(db.Model):
__tablename__ = 'users'
id = db.Column(db.Integer, primary_key=True)
username = db.Column(db.String(64), unique=True, index=True)
#...
我views.py文件(是的,這是一個燒瓶應用),那麼看起來像:
@posts.route('/data')
def data():
# Column definition for SQLAlchemy-DataTables
columns = [
ColumnDT(Post.id),
ColumnDT(Post.subject),
ColumnDT(User.username), # for creator
ColumnDT(User.username), # for last modifier... this is the problem
ColumnDT(Post.modified_time)
]
# Query definition
query = db.session.query().\
select_from(Post).\
outerjoin(User, Post.creator_id==User.id).\
outerjoin(User, Post.last_modifier_id==User.id) # second error here
# Request parameters
params = request.args.to_dict()
# Instantiating a DataTable for the query and table needed
rowTable = DataTables(params, query, columns)
# Returns DataTable JSON
return jsonify(rowTable.output_result())
沒有與這兩個問題代碼,我可以使用指導:
- 什麼是在查詢d中執行相同表之間多個連接的最佳方法efinition?
- 如何設置列定義以引用多個關係(creator,last_modifier)的相同數據模型屬性(User.username)?