【问题标题】:jinja2.exceptions.UndefinedError: 'admin.forms.MyForm object' has no attribute 'hidden_tag'jinja2.exceptions.UndefinedError: 'admin.forms.MyForm object' 没有属性 'hidden_​​tag'
【发布时间】:2020-06-25 08:17:14
【问题描述】:

所以我的 ma​​in.py 中有一个wtforms_alchemy form 类(它使用flask_admin)。这个 form 类正在从 sqlachemy 检索 database 类。当我尝试在 main.py 中加载表单时,会出现此错误。

ma​​in.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'

有人知道问题出在哪里吗?

【问题讨论】:

标签: python flask sqlalchemy flask-wtforms flask-admin


【解决方案1】:

感谢@pjcunningham,我将在此处发布答案。在你的wtforms_alchemy 中只需要:

from flask_wtf import FlaskForm

class MyForm(ModelForm, FlaskForm):
    class Meta:
        #model = whateverYourSQLAlchemy

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-05
    • 2019-09-16
    • 1970-01-01
    相关资源
    最近更新 更多