如何解决Flask-AppBuilder:如何对关系进行排序?
根据documentation,您可以使用order_columns
指定允许排序的列,这会在标题中添加蓝色箭头以选择升序还是降序。
但是,我也想通过一个名为“ softwareproduct”的关系对另一个表进行排序,但是当我将其添加到order_columns时,它会崩溃(因为它不是真实的列,而是一个关系)。该文档还列出了order_rel_fields,我也尝试过这样做,但是没有向“软件产品”“列” /关系添加排序功能:
Add_columns,edit_columns,show_columns和list_columns可以很好地工作,只有顺序不对,即使从技术上讲“软件产品”不是真正的列而是一种关系。
如何让用户对这种关系进行排序?
models.py
[...]
class Softwareproduct(Model):
suffix = Column(String(200),primary_key=True)
label = Column(String(200),nullable=False)
[...]
def __repr__(self):
return self.label
class Citation(Model):
suffix = Column(String(200),primary_key=True)
swp_suffix = Column(String(200),ForeignKey("softwareproduct.suffix"),nullable=False)
softwareproduct = relationship("Softwareproduct")
label = Column(String(200),nullable=False)
def __repr__(self):
return self.label
views.py
class CitationView(ModelView):
datamodel = sqlAInterface(Citation)
label_columns = {'label':'Citation','suffix': 'ID'}
add_columns = ['softwareproduct',"label","suffix","classified"]
edit_columns = ['softwareproduct',"classified"]
show_columns = ['softwareproduct',"classified"]
list_columns = ['softwareproduct',"classified"]
order_columns= ["label","suffix"]
order_rel_fields = {'softwareproduct': ('label','asc')}
related_views = [ClassifiedView]
解决方法
更改
order_columns= ["label","suffix"]
收件人
base_order = ("label","asc")
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。