"""Custom WTForms fields/widgets for the admin image picker.""" from markupsafe import Markup from wtforms import StringField from wtforms.widgets import TextInput class ImagePickerWidget(TextInput): def __call__(self, field, **kwargs): kwargs.setdefault("class", "form-control image-picker-input") kwargs["style"] = kwargs.get("style", "") + ";display:none" kwargs["id"] = field.id field_id = field.id val = field._value() if hasattr(field, "_value") else (field.data or "") hidden = ( f'' ) preview_src = val or "" preview_display = "block" if preview_src else "none" html = f"""
{hidden}
预览
{val}
""" return Markup(html) class ImagePickerField(StringField): widget = ImagePickerWidget()