Nik*_*ntz 15 python google-app-engine jinja2 wtforms
我正在启用一个可以编辑实体的函数.我想用数据存储区中的变量填充表单.我该怎么做?我的代码没有填充表单:
if self.request.get('id'):
id = int(self.request.get('id'))
ad = Ad.get(db.Key.from_path('Ad', id))
im = ad.matched_images
editAdForm = AdForm(ad)
if str(users.get_current_user()) == str(ad.user) or users.is_current_user_admin():
self.render_jinja('edit', form_url=blobstore.create_upload_url('/addimage'),
admin=users.is_current_user_admin(),
user_url= (users.create_logout_url('/'
) if users.get_current_user() else users.create_login_url(self.request.uri)),
user= users.get_current_user(),
ad= ad,
form = editAdForm)
Run Code Online (Sandbox Code Playgroud)
相反,我看到此错误消息:
formdata应该是一个支持'getlist'方法的multidict类型的包装器:
更新
解决方法是填充这样的表单,但我想知道这是否真的是推荐的方式?
editAForm = AForm(name=article.name, title=article.title, text=article.text... )
Run Code Online (Sandbox Code Playgroud)
小智 25
你需要通过表单的第二个参数"obj"传递你的对象:
editAdForm = AdForm(obj=ad)
Run Code Online (Sandbox Code Playgroud)
这里的文档速成课程概述:http://wtforms.simplecodes.com/docs/dev/crash_course.html#editing-existing-objects
| 归档时间: |
|
| 查看次数: |
10513 次 |
| 最近记录: |