un1*_*n1t 1 mongoengine flask wtforms
我有以下模型:
class Post(Document):
body = db.StringField(required=True)
author = db.StringField(verbose_name="Author", max_length=255, required=True)
created_at = db.DateTimeField(default=datetime.datetime.now, required=True)
comments = db.ListField(db.EmbeddedDocumentField('Comment'))
Run Code Online (Sandbox Code Playgroud)
和下面的视图:
from flask.ext.mongoengine.wtf import model_form
@app.route('/')
def home():
form = model_form(Post, exclude=('created_at', 'comments'))
return render_template('home.html', form=form)
Run Code Online (Sandbox Code Playgroud)
我不知道如何在模板中呈现此表单。我确实尝试了几件事:
{% for field in form %}
{{ field }}
{% endfor %}
Run Code Online (Sandbox Code Playgroud)
这给出了以下错误:
TypeError: 'FormMeta' object is not iterable
Run Code Online (Sandbox Code Playgroud)
我也试过这个:
{{ form.body() }}
Run Code Online (Sandbox Code Playgroud)
有不同的错误:
AttributeError: 'UnboundField' object has no attribute '__call__'
Run Code Online (Sandbox Code Playgroud)
和{{form.body}}这样的渲染
<UnboundField(TextAreaField, (), {'default': None, 'validators': [<wtforms.validators.Required object at 0x7f63804d0fd0>], 'description': '', 'filters': [], 'label': None})>
Run Code Online (Sandbox Code Playgroud)
您需要启动表格:
from flask.ext.mongoengine.wtf import model_form
@app.route('/')
def home():
form = model_form(Post, exclude=('created_at', 'comments'))(request.form)
return render_template('home.html', form=form)
Run Code Online (Sandbox Code Playgroud)
可以找到使用相同堆栈的示例项目:https : //github.com/rozza/flask-tumblelog
| 归档时间: |
|
| 查看次数: |
3529 次 |
| 最近记录: |