在 flask-admin 中编辑 hybrid_property 个字段

Editing hybrid_property fields in flask-admin

我试图在 flask-admin 中添加可编辑的 hybrid_property 字段,但它们没有显示在创建或编辑视图中。它们确实显示在列表视图中。我试过设置 ignore_hidden=False 但这不起作用。我做错了什么?

class TestTable(db.Model):
    __tablename__ = "test_table"
    id = db.Column(db.Integer, primary_key=True)

    _test_column = db.Column(db.String)

    @hybrid_property
    def test_column(self):
        return self._test_column

    @test_column.setter
    def test_column(self, test_column):
        self._test_column = test_column


class TestModelView(ModelView):
    ignore_hidden = False


admin = Admin(app, name="TestHybrid")
admin.add_view(TestModelView(TestTable, db.session))

您可以通过将 test_column 添加到 form_extra_fields 来使其可编辑,如下所示:

from wtforms.fields import StringField

class TestModelView(ModelView):
    form_extra_fields = {
        'test_column': StringField('test_column')
    }

在管理面板中保存值为 'test1' 的测试后:

>>> TestTable.query.all()[-1]._test_column
'test1'
>>> TestTable.query.all()[-1].test_column
'test1'

test_column 字段在编辑和创建视图中可见。