首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Flask-AppBuilder:如何对关系进行排序?

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

Stack Overflow用户
提问于 2020-09-21 16:56:53
回答 1查看 155关注 0票数 1

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

然而,我也想按名为"softwareproduct“的关系排序到另一个表,但是当我将它添加到order_columns时,它崩溃了(因为它不是一个真正的列,而是一个关系)。文档还列出了我也尝试过的order_rel_fields,但它没有为"softwareproduct“列”/relationship“添加排序函数:

Add_columns、edit_columns、show_columns和list_columns运行得很好,但order不是,尽管"softwareproduct“从技术上讲不是一个真正的列,而是一种关系。

我如何让用户对这样的关系进行排序?

models.py

代码语言:javascript
复制
[...]
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

代码语言:javascript
复制
class CitationView(ModelView):
    datamodel = SQLAInterface(Citation)
    label_columns = {'label':'Citation', 'suffix': 'ID'}
    add_columns = ['softwareproduct', "label", "suffix", "classified"]
    edit_columns = ['softwareproduct', "label", "suffix","classified"]
    show_columns = ['softwareproduct', "label", "suffix","classified"]
    list_columns = ['softwareproduct', "label", "suffix","classified"]                                                                                                                                                                                                                                                        
    order_columns= ["label","suffix"]
    order_rel_fields = {'softwareproduct': ('label', 'asc')}
    related_views = [ClassifiedView]
EN

回答 1

Stack Overflow用户

发布于 2020-12-09 01:53:20

变化

代码语言:javascript
复制
order_columns= ["label","suffix"]

代码语言:javascript
复制
base_order = ("label", "asc")
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63989082

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档