Comments (5)
Yes there is a way to render readonly fields.
Suppose you have an example model like this on (models.py)::
class ExampleModel(Model):
id = Column(Integer, primary_key=True)
field1 = Column(String(50), unique = True, nullable=False)
field2 = Column(String(50), unique = True, nullable=False)
field3 = Column(String(50), unique = True, nullable=False)
def __repr__(self):
return self.field1
And want to render field2 as readonly, on your views.py define a new readonly widget and reference it on edit_form_extra_fields::
from flask.ext.appbuilder.views import ModelView
from flask_appbuilder.fieldwidgets import BS3TextFieldWidget
from .models import ExampleModel
class BS3TextFieldROWidget(BS3TextFieldWidget):
def __call__(self, field, **kwargs):
kwargs['readonly'] = 'true'
return super(BS3TextFieldROWidget, self).__call__(field, **kwargs)
class ExampleView(ModelView):
datamodel = SQLAModel(ExampleModel)
edit_form_extra_fields = {'field2': TextField('field2',
widget=BS3TextFieldROWidget())}
Hope this was clear enough
If you just want to omit a field on add view or edit view just do the following for 'field2'::
class ExampleView(ModelView):
datamodel = SQLAModel(ExampleModel)
edit_columns = ['field1','field3']
from flask-appbuilder.
That was clear, and it works perfectly - thanks!
from flask-appbuilder.
No stress!
from flask-appbuilder.
class ExampleView(ModelView):
datamodel = SQLAModel(ExampleModel)
edit_form_extra_fields = {'field2': TextField('field2',
widget=BS3TextFieldROWidget())}
whats 'TextField'?
from flask-appbuilder.
Hi,
I have quick question:
Is there any way to make such readonly field work on relation?
Let's say we have:
class A(Model):
id = Column(Integer, primary_key=True)
fieldA
ClassB_rel = relationship("B", back_populates = "ClassA_rel")
class B(Model):
id = Column(Integer, primary_key=True)
fieldB
ClassA_rel = relationship("A", back_populates = "ClassB_rel")
And In view (using class B model) I would like to have read only field as follows:
edit_form_extra_fields = {
'somefield': TextField("ClassA_rel.fieldA", widget=BS3TextFieldReadOnlyWidget())
}
Thank you.,
S.
from flask-appbuilder.
Related Issues (20)
- Order of Lists in Multiview HOT 3
- Make Google OAuth login work for users created using `create-user`
- flask fab create-app returns error HOT 3
- When redefining created and changed by fks to change the custom view, they get nullified HOT 2
- Actual way for Keycloak integration
- Can we add optimistic locking in user land?
- actions on child/related views (multiple childs exist) not working properly HOT 2
- TypeError occured on front-end when using the 'extra_classes=readonly' argument for the Select2Widget HOT 1
- Cannot use anonymous user with LDAP
- user_registration error
- Add support for marshmallow-sqlalchemy 1.0.0
- Support Personal Access Tokens in addition to AUTH_TYPE HOT 1
- [Request] Implement compatibility for Flask 3.0.2
- /static/appbuilder/css/webfonts/fa-regular-400.woff2 file is not found HOT 1
- Bypass Superset keycloak OAUTH login page HOT 1
- Wrong url while getting userinfo from Keycloak HOT 1
- Changed by user column in ab_user table is not updated when user logged in through LDAP HOT 1
- HTML <a> target attribute for menu item
- adding back-end code and passing 'calculated' value to a view template - how to? HOT 1
- Use PKCE Code challenge for OAUTH authentication scheme
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-appbuilder.