我正在尝试在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))
答案 0 :(得分:2)
您可以通过将 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 字段在编辑和创建视图中可见。