在flask-admin中编辑hybrid_property字段

Jam*_*ull 4 python flask flask-admin

我试图在 中添加可编辑的 Hybrid_property 字段flask-admin,但它们没有显示在创建或编辑视图中。但它们确实出现在列表视图中。我尝试过设置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))
Run Code Online (Sandbox Code Playgroud)

sta*_*ekz 6

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

from wtforms.fields import StringField

class TestModelView(ModelView):
    form_extra_fields = {
        'test_column': StringField('test_column')
    }
Run Code Online (Sandbox Code Playgroud)

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

>>> TestTable.query.all()[-1]._test_column
'test1'
>>> TestTable.query.all()[-1].test_column
'test1'
Run Code Online (Sandbox Code Playgroud)

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