I'm trying to have editable hybrid_property fields in flask-admin, but they're not showing up in the create or edit views. They do show up in the list view though. I've tried setting ignore_hidden=False but that isn't working. What am I doing wrong?
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))
You can make it editable by adding test_column to form_extra_fields as follows:
from wtforms.fields import StringField
class TestModelView(ModelView):
form_extra_fields = {
'test_column': StringField('test_column')
}
After saving test one with value 'test1' in admin panel:
>>> TestTable.query.all()[-1]._test_column
'test1'
>>> TestTable.query.all()[-1].test_column
'test1'
test_column field is visible in edit and create views.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With