【发布时间】:2014-04-25 08:58:15
【问题描述】:
我试图从datastore 中检索一个实体,然后将一个值添加到其属性之一,但我收到一条错误消息
ValueError: need more than 1 value to unpack
我正在从 RequestHandler 执行此操作。这是我的代码
class AddNewEmployeeHandler(webapp2.RequestHandler):
def post(self):
employee_name = self.request.get('employee_id')
callback =self.request.get('callback')
employee = Employee.get_by_id(employee_name)
if employee:
self.error(409)
else:
dept = Department.get_or_insert(key_name="Other Charges")
dept.employees.append(employee)
dept.put()
Other Charges 是数据存储中已存在的实体的 ID/名称,employees 是 Department 类的属性,定义为
employees =ndb.keyProperty(repeated=True)
我从表单中获取了employee_id 的值。我试图在网上找到解决方案,但我发现抛出错误的原因有很多,其中没有一个与我的问题相似。关于为什么会发生这种情况的任何建议?
编辑
【问题讨论】:
-
我敢打赌,你添加了一些带有
employees =ndb.keyProperty()的实体,然后添加了repeated参数。 -
如果是这种情况,您可以使用此 SO 答案 stackoverflow.com/questions/19842671/… 来检索原始实体并修复数据
-
我在添加实体后没有添加
repeated参数。但是我首先创建了一个没有employees属性的Department实体,然后从数据存储中删除了该实体,然后创建了一个新的实体实体,这次是在添加employees属性之后。
标签: python google-app-engine app-engine-ndb