14

ModelView読み取り専用のフィールドを作成するにはどうすればよいですか?

class MyModelView(BaseModelView):
    column_list = ('name', 'last_name', 'email')
4

5 に答える 5

20

SQLAlchemyモデルを使用したFlask-Adminについて話していて、sqlamodel.ModelViewから継承してビューを宣言している場合は、これをクラス定義に追加するだけです。

class MyModelView(BaseModelView):
    column_list = ('name', 'last_name', 'email')
    form_widget_args = {
        'email':{
            'disabled':True
        }
    }
于 2013-09-17T00:40:42.137 に答える
11

@thkangの答えにコメントするのに十分な評判がありません。これは、私にとってうまくいったものに非常に近いものです。このdisabled属性はPOSTデータからフィールドを除外しますが、使用readonlyすると目的の効果が得られました。

from wtforms.fields import TextField

class ReadonlyTextField(TextField):
  def __call__(self, *args, **kwargs):
    kwargs.setdefault('readonly', True)
    return super(ReadonlyTextField, self).__call__(*args, **kwargs)
于 2014-05-30T16:38:25.110 に答える
8

disabledテキストフィールドに使用しようとすると奇妙なエラーが発生したため、readonly代わりに次のコマンドを使用しました。

class MyModelView(BaseModelView):
    column_list = ('name', 'last_name', 'email')
    form_widget_args = {
        'email':{
            'readonly':True
        }
    }
于 2017-08-11T13:10:46.490 に答える
7

これを試して:

class DisabledTextField(TextField):
  def __call__(self, *args, **kwargs):
    kwargs.setdefault('disabled', True)
    return super(DisabledTextField, self).__call__(*args, **kwargs)
于 2013-03-07T09:51:54.960 に答える
6

Jinjaテンプレートでフィールドをレンダリングするときにdisabled=true、WTFormsがkwargを認識しない場合は渡すだけで、html要素の属性として渡すだけです。

<form>
{{ form.example(disabled=True) }}
</form>
于 2013-02-14T13:53:24.477 に答える