flask - flask 管理表单编辑规则导致“没有字段”错误

标签 flask flask-admin

在我的类RequestView(ModelView)中:我有...

form_edit_rules = (
    rules.FieldSet(('name', 'email', 'phone','shopname', 'invoice', 'territory'), 'Customer Information'),
    rules.FieldSet(('address', 'address2', 'city','state','zipcode'), 'Shipping Information'),
    rules.FieldSet(('carrier','num_labels','shipping_label_url', 'shipping_tracking_num', 'shipping_label_url_2', 'shipping_tracking_num_2', 'shipping_label_url_3', 'shipping_tracking_num_3', 'shipping_label_url_4', 'shipping_tracking_num_4'), 'Shipping Labels / Tracking'),
    rules.FieldSet(('created','reason', 'status', 'sales_attention_comments', 'message', 'customer_notes','salesperson'), 'Return Information'),
    rules.FieldSet(('pdffile','credit','audit_reason', 'audit_detail','light_plan','shipping_territory', 'notes','completed'), 'Auditor Fields')
    )


出于某种原因,包含“电话”会使它丢掉并导致此错误:

ValueError:0x11007bc88处的Form flask_admin.contrib.sqla.form.RequestForm对象没有现场电话

如果我删除手机,它就可以正常工作。

我在模型中声明了以下电话:

phone = db.Column(PhoneNumberType())


请注意,我有一个自定义的前端表单,可以将数据保存到电话字段中。只有管​​理员编辑表单的此修改才会引发错误。

最佳答案

可能由于PhoneNumberType字段的复杂性,flask-admin不知道如何呈现其小部件,因此表单上缺少该小部件。

尝试将其作为StringFieldform_extra_fields一起添加到form_edit_rules中,如下所示:

from wtforms.fields import StringField

class RequestView(ModelView):
    form_extra_fields = {
        'phone': StringField('phone')
    }
    form_edit_rules = (
        rules.FieldSet(('name', 'email', 'phone','shopname', 'invoice', 'territory'), 'Customer Information'),
        rules.FieldSet(('address', 'address2', 'city','state','zipcode'), 'Shipping Information'),
        rules.FieldSet(('carrier','num_labels','shipping_label_url', 'shipping_tracking_num', 'shipping_label_url_2', 'shipping_tracking_num_2', 'shipping_label_url_3', 'shipping_tracking_num_3', 'shipping_label_url_4', 'shipping_tracking_num_4'), 'Shipping Labels / Tracking'),
        rules.FieldSet(('created','reason', 'status', 'sales_attention_comments', 'message', 'customer_notes','salesperson'), 'Return Information'),
        rules.FieldSet(('pdffile','credit','audit_reason', 'audit_detail','light_plan','shipping_territory', 'notes','completed'), 'Auditor Fields')
    )


电话字段的验证已保留,因此我想它将解决您的问题。

关于flask - flask 管理表单编辑规则导致“没有字段”错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57999242/

相关文章:

python - 在 docker 容器内运行的 flask.py 文件的服务器连接困难

python - 如何在目录中的文件上运行gunicorn?

python - flask-admin - 如何在 pymongo 后端使用 ImageUploadField

python - Flask-Admin:如何显示所有字段

python - 如何在 Windows 上运行 Airflow

python - 如何在 Python 中使用 OpenCV 从 POST 请求加载视频?

python - 如何在使用 PIL 修改文件上传表单后将文件上传到 s3?

python - (仍然)尝试 app.app_context() 时出现 RuntimeError : Working outside of request context.

python - 如何在 Flask-Admin 中将方法中的访问与 BaseModelView 类分开

python - 减少 Flask-Admin 中列的大小