python - 在 WTForms 中填充 GAE 数据存储键值

标签 python google-app-engine wtforms

我正在使用 WTForms 和 GAE (python) 数据存储。我试图将键值传递到表单以用于 CRUD 目的,但它发送的是对象,而不是字符串形式的键。这是 html 输出行:

<td> <input id="ts_list-0-key" name="ts_list-0-key" type="hidden" value="&lt;bound method TransactionSchedule.key of &lt;main.TransactionSchedule object at 0x04F19070&gt;&gt;"> </td>

所有其他字段均已正确填充。

其他信息: 我一起使用 FormField 和 FieldList 来重复多个子表单。为了填充子表单,我使用append_entry():

for ts in tslist:
    form.ts_list.append_entry(ts)

似乎在任何地方都找不到此信息,但也许我是一个糟糕的 Google 员工。

我已经尝试过:

-将 key 转换为模板中的字符串(jinja2),但似乎无法使其工作

-在 db.Model 类中创建一个 __str__ 和一个 __unicode__ 方法,该方法以字符串形式返回值,但我想我在某个地方读到了甚至不允许的内容:/

任何帮助都会很棒!

如果您需要查看更多代码,请告诉我,谢谢!

最佳答案

如果没有看到更多代码,很难说,但看起来代码中的某个地方有类似 ts.key 的内容(假设 tsTransactionSchedule 的实例)。 key 实际上是一个方法(而不是属性),因此您需要将其称为 ts.key()

例如,这是一个具有一个方法的简单类 - my_print。请注意,将其作为属性引用(而不是作为方法调用)会返回与上面 value 属性中类似的输出:

>>> class MyClass(object):
...     def __init__(self, a):
...         self.a = a
...     def my_print(self):
...         print self.a
... 
>>> c = MyClass('hello')
>>> c.my_print
<bound method MyClass.my_print of <__main__.MyClass object at 0x7f11c16791d0>>
>>> c.my_print()
hello

关于python - 在 WTForms 中填充 GAE 数据存储键值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14820731/

相关文章:

python - 在 Python 中检查驼峰大小写

Python 库,用于制作带有选项等的漂亮命令行脚本

Python-Requests:从 git 文件夹中获取所有文件

jquery - 使用 https 而不是 http 时 JSONP 请求失败

python - 使用 WTForms 的长排序下拉列表

javascript - 将 JavaScript 与 WTForms 结合使用

python - 在选择字段中设置默认值,使用 wtforms 和 flask

python - 使用自定义变量作为 .rolling() 窗口

python - 如何在 GAE(python)中解码 encodeURIComponent?

java - appengine-web.xml 不包含 <threadsafe> 元素