如何在ModelView
上只讀字段?Flask-Admin模型中的只讀文本字段
class MyModelView(BaseModelView):
column_list = ('name', 'last_name', 'email')
如何在ModelView
上只讀字段?Flask-Admin模型中的只讀文本字段
class MyModelView(BaseModelView):
column_list = ('name', 'last_name', 'email')
如果你談論的燒瓶聯繫與SQLAlchemy的模型,而你從sqlamodel.ModelView繼承聲明一個觀點,你可以添加這你的班級定義:
class MyModelView(BaseModelView):
column_list = ('name', 'last_name', 'email')
form_widget_args = {
'email':{
'disabled':True
}
}
當你渲染場在金賈的模板,只是通過在disabled=true
如果WTForms不承認kwarg,它只是傳遞它是html元素的屬性。
<form>
{{ form.example(disabled=True) }}
</form>
試試這個:
class DisabledTextField(TextField):
def __call__(self, *args, **kwargs):
kwargs.setdefault('disabled', True)
return super(DisabledTextField, self).__call__(*args, **kwargs)
我沒有足夠的聲望評論@ 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)
有什麼辦法可以設置它嗎? form_widget_args = { 「type_values」:{ 「只讀」:「只讀」 }} 勞倫斯 – 2015-06-18 05:43:51
,我將指定form_extra_fields爲同名的領域你想成爲只讀的,它將覆蓋這一領域。 – pip 2015-06-18 09:39:46
即form_overrides = dict(your_field_name = ReadonlyTextField)或可能form_extra_fields = dict(your_field_name = ReadonlyTextField('Label',...)) – pip 2015-06-18 09:40:44
我奇怪的錯誤,當我試圖用disabled
文本字段,所以我用readonly
代替:
class MyModelView(BaseModelView):
column_list = ('name', 'last_name', 'email')
form_widget_args = {
'email':{
'readonly':True
}
}
這可能不是你想要的。我實現了這一點,但注意到被禁用的字段在提交時獲得**清除**。當我使用'readonly'時,我得到了預期的行爲(值不會改變)。 – Ian 2015-05-15 23:02:15