微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Flask-AppBuilder:如何对关系进行排序?

如何解决Flask-AppBuilder:如何对关系进行排序?

根据documentation,您可以使用order_columns指定允许排序的列,这会在标题添加蓝色箭头以选择升序还是降序。

但是,我也想通过一个名为“ softwareproduct”的关系对另一个表进行排序,但是当我将其添加到order_columns时,它会崩溃(因为它不是真实的列,而是一个关系)。该文档还列出了order_rel_fields,我也尝试过这样做,但是没有向“软件产品”“列” /关系添加排序功能

screenshot of the F.A.B. prototype where the "Softwareproduct" "column"/relationship is not sortable

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 举报,一经查实,本站将立刻删除。