【发布时间】:2020-06-25 08:17:14
【问题描述】:
所以我的 main.py 中有一个wtforms_alchemy form 类(它使用flask_admin)。这个 form 类正在从 sqlachemy 检索 database 类。当我尝试在 main.py 中加载表单时,会出现此错误。
main.py
class MyFormView(BaseView):
@expose('/', methods=['GET', 'POST'])
def my_form(self):
form = MyForm()
if request.method == "POST":
return "congrats!"
return self.render('admin/my_form.html', form=form)
admin.add_view(MyFormView(name='My Form', endpoint='/form-endpoint'))
form.py
class MyForm(ModelForm):
class Meta:
model = MyDatabaseUser
# The MyDatabaseUser is the database class with SQLAlchemy
# sample of what my database looks like
# class MyDatabaseUser(db.Model):
# id = db.Column(UUIDType(binary=False), default=uuid.uuid4, primary_key=True)
# date = db.Column(db.Date)
# amount = db.Column(db.Integer)
admin/my_form.html
{% extends "bootstrap/base.html" %}
{% import "bootstrap/wtf.html" as wtf %}
{% block body %}
{{ super() }}
<div class="container">
<form method="POST" action="/form-endpoint">
<dl>
{{ wtf.quick_form(form)}}
<input class="btn btn-primary" type="submit" value="Submit Me!">
</dl>
</form>
</div>
{% endblock body %}
显示错误
jinja2.exceptions.UndefinedError: 'admin.forms.MyForm object'没有属性'hidden_tag'
有人知道问题出在哪里吗?
【问题讨论】:
-
这个问题在 wtforms-alchemy Github pgaes 上讨论过:'csrf protection in wtforms-alchemy'。
标签: python flask sqlalchemy flask-wtforms flask-admin