我在网络应用程序中使用Flask和WTForms。我有一个数据库模型,一个窗体和一个sqla.ModelView模型像这样:
class Users(db.Model):
__tablename__ = 'users'
id = db.Column(db.INTEGER, primary_key=True)
name = db.Column(db.String, nullable=False)
last_name = db.Column(db.String, nullable=False)
class UsersForm(form.Form):
id = fields.IntegerField('Id')
name = fields.StringField('Name')
last_name = fields.StringField('Last Name')
class UsersAdmin(sqla.ModelView):
column_list = ['id', 'name', 'last_name']
form = UsersForm
form_create_rules = column_list
form_edit_rules = ['name', 'last_name']
但它不起作用,因为这个错误:
ValueError: Form <__main__.UsersForm object at 0x7f5039c48710> does not have field name
但是,当form\u edit\u rules等于form\u create rules时,它可以完美地工作!你知道吗
我在flask admin github issuelist上发现,表单规则只影响表单的显示方式,而不影响表单本身。你知道吗
不需要在flask admin中创建窗体实例。我建议让您的数据库处理id,因为它会自动递增。以我的经验,flask admin甚至不显示id字段。你知道吗
如果确实希望仅在创建窗体上具有可编辑的id字段,可以使用以下代码使该字段在编辑窗体上为只读:
相关问题 更多 >
编程相关推荐