在 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 字段在编辑和创建视图中可见。
我试图在 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 字段在编辑和创建视图中可见。