我正在使用 WTForms 和 GAE (python) 数据存储。我试图将键值传递到表单以用于 CRUD 目的,但它发送的是对象,而不是字符串形式的键。这是 html 输出行:
<td> <input id="ts_list-0-key" name="ts_list-0-key" type="hidden" value="<bound method TransactionSchedule.key of <main.TransactionSchedule object at 0x04F19070>>"> </td>
所有其他字段均已正确填充。
其他信息: 我一起使用 FormField 和 FieldList 来重复多个子表单。为了填充子表单,我使用append_entry():
for ts in tslist:
form.ts_list.append_entry(ts)
似乎在任何地方都找不到此信息,但也许我是一个糟糕的 Google 员工。
我已经尝试过:
-将 key 转换为模板中的字符串(jinja2),但似乎无法使其工作
-在 db.Model 类中创建一个 __str__
和一个 __unicode__
方法,该方法以字符串形式返回值,但我想我在某个地方读到了甚至不允许的内容:/
任何帮助都会很棒!
如果您需要查看更多代码,请告诉我,谢谢!
最佳答案
如果没有看到更多代码,很难说,但看起来代码中的某个地方有类似 ts.key
的内容(假设 ts
是TransactionSchedule
的实例)。 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/