Flask-appbuilder Синтаксис преобразования базового фильтра SQLAlchemy - PullRequest
0 голосов
/ 08 сентября 2018

Я не смог найти ни одного примера SQLAFilterConverter на практике, и я несколько озадачен тем, как правильно применять синтаксис.

Я хотел бы отфильтровать представлениениже, чтобы показать только Field_A = null или '' (пусто), но я получаю builtins.TypeError TypeError: must be real number, not str ошибку.

    class Table_AView(ModelView):
        datamodel = SQLAInterface(Table_AView)
        label_columns = {'Field_A':'A'}
        list_columns = ['Field_A']
        base_filters = [['Field_A', FilterEqual, '']]

Я предполагаю, что это потому, что Field_A необходимо преобразоватьв столбец, который имеет «поддерживаемый список фильтров, специфичных для SQLAlchemy», как упоминается в документации:

class SQLAFilterConverter(BaseFilterConverter):
    """
        Class for converting columns into a supported list of filters
        specific for SQLAlchemy.
    """
    conversion_table = (('is_relation_many_to_one', [FilterRelationOneToManyEqual,
                        FilterRelationOneToManyNotEqual]),
                        ('is_relation_one_to_one', [FilterRelationOneToManyEqual,
                        FilterRelationOneToManyNotEqual]),
                        ('is_relation_many_to_many', [FilterRelationManyToManyEqual]),
                        ('is_relation_one_to_many', [FilterRelationManyToManyEqual]),
                        ('is_enum', [FilterEqual,
                                     FilterNotEqual]),
                        ('is_text', [FilterStartsWith,
                                     FilterEndsWith,
                                     FilterContains,
                                     FilterEqual,
                                     FilterNotStartsWith,
                                     FilterNotEndsWith,
                                     FilterNotContains,
                                     FilterNotEqual]),
                        ('is_binary', [FilterStartsWith,
                                       FilterEndsWith,
                                       FilterContains,
                                       FilterEqual,
                                       FilterNotStartsWith,
                                       FilterNotEndsWith,
                                       FilterNotContains,
                                       FilterNotEqual]),
                        ('is_string', [FilterStartsWith,
                                       FilterEndsWith,
                                       FilterContains,
                                       FilterEqual,
                                       FilterNotStartsWith,
                                       FilterNotEndsWith,
                                       FilterNotContains,
                                       FilterNotEqual]),
                        ('is_integer', [FilterEqual,
                                        FilterGreater,
                                        FilterSmaller,
                                        FilterNotEqual]),
                        ('is_float', [FilterEqual,
                                      FilterGreater,
                                      FilterSmaller,
                                      FilterNotEqual]),
                        ('is_numeric', [FilterEqual,
                                      FilterGreater,
                                      FilterSmaller,
                                      FilterNotEqual]),
                        ('is_date', [FilterEqual,
                                     FilterGreater,
                                     FilterSmaller,
                                     FilterNotEqual]),
                        ('is_boolean', [FilterEqual,
                                        FilterNotEqual]),
                        ('is_datetime', [FilterEqual,
                                         FilterGreater,
                                         FilterSmaller,
                                         FilterNotEqual]),
    )

Однако я не знаю, как применить эту таблицу преобразования к моему коду, так как я не понимаютребуемый синтаксис.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...