Giter Site home page Giter Site logo

readonly fields about flask-appbuilder HOT 5 CLOSED

tarsnake avatar tarsnake commented on May 3, 2024
readonly fields

from flask-appbuilder.

Comments (5)

dpgaspar avatar dpgaspar commented on May 3, 2024

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.

tarsnake avatar tarsnake commented on May 3, 2024

That was clear, and it works perfectly - thanks!

from flask-appbuilder.

dpgaspar avatar dpgaspar commented on May 3, 2024

No stress!

from flask-appbuilder.

MHUNCHO avatar MHUNCHO commented on May 3, 2024

class ExampleView(ModelView):
datamodel = SQLAModel(ExampleModel)
edit_form_extra_fields = {'field2': TextField('field2',
widget=BS3TextFieldROWidget())}

whats 'TextField'?

from flask-appbuilder.

slavo83 avatar slavo83 commented on May 3, 2024

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)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.