Comments (1)
Finally found a solution after months:
Variable = Base.classes.variables
class VariableView(ModelView):
list_columns = ["variable", "value"]
form_columns = ["variable", "value"]
column_default_sort = ("variable", False)
column_filters = ["variable"]
column_sortable_list = ["variable"]
column_searchable_list = ["variable"]
column_formatters = {
"variable": lambda view, context, model, name: model.variable.replace(
"_", " "
).capitalize(),
}
def edit_form(self, obj):
class VariableForm(FlaskForm):
pass
setattr(
VariableForm,
"variable",
StringField("Variable", validators=[Optional()], default=obj.variable),
)
try:
json_data = json.loads(obj.value)
for key in json_data:
setattr(
VariableForm,
key,
StringField(
key.capitalize(),
validators=[Optional()],
default=json_data[key],
),
)
except json.decoder.JSONDecodeError:
setattr(
VariableForm,
"Value",
StringField("Label", validators=[Optional()], default=obj.value),
)
return VariableForm(obj=obj)
def on_model_change(self, form, model, is_created):
# Update the model with the data from the form
json_output = {}
for field in form:
if field.name == "value":
return model
if field.name != "variable" and field.name != "csrf_token":
json_output[field.name] = field.data
model.value = json.dumps(json_output)
return model
admin.add_view(VariableView(Variable, user.session, name="Variables"))
from flask-admin.
Related Issues (20)
- mongodb form_subdocument overwrite stopped working after updates to current flask/ flask-admin/ flask-mongoenine HOT 1
- Multiple selection from dropdown list. HOT 1
- Problem with scoped_session by sqlalchemy
- RFE: migrate from `flask-babelex` to `flask-babel`
- Bootstrap4: Duplicate requests when opening modal windows
- Intercepting and executing custom code on object creation/update in flask-admin HOT 2
- How to use form_overrides on ListField(StringField)?
- `rediscli` command names should be treated case-insensitively
- Enhancement: Allow page_size_options = [15,30,60] to override 20,50,100 hard coded into page_size_form layout
- Error launching the examples using Python 3.12 HOT 1
- QueryAjaxModelLoader and additional filters
- Please update the requirements.txt in examples/sqla/ HOT 1
- Can't use column_filters with peewee ForeignKeyField
- aioflask with Flask>=3.0
- Form column is not being displayed if it starts with underscore "_" HOT 7
- Seeking help from additional volunteers? HOT 5
- Creating custom views for BaseView grouped in a category and passing an id
- Can't use multiple `Admin` instances with different Bootstrap themes (`FLASK_ADMIN_SWATCH`) HOT 2
- Flask Admin Reboot: A community version to submit changes HOT 5
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from flask-admin.