0

我正在尝试创建一个实体,但似乎每次我第一次保存/持久化一个实体时,它都会使用 id 而不是键名来保存它。这是我的代码:

if company.count() < 1:
  # save the company
  company = Companies(key_name=account)
  company.account = account
  company.status = status
  company.put()

我也在 ndb 上试过这个:

if company.count() < 1:
  # save the company
  company = Companies()
  company.key_name = account
  company.account = account
  company.status = status
  company.put()

另一个观察结果是,如果使用函数,保存数据存储只会创建一个键名get_or_insert,但如果这是代码,这似乎会编辑现有数据。

company = Companies.get_or_insert(account)
company.account = account
company.status = status
company.put()

两个问题:

  1. 如果这是一个新的主帐户,是否建议使用get_or_insert功能?只要您有一个好的 if 语句,是否建议这样做?
  2. 如果第一个问题的答案是否定的,我们如何在不使用get_or_insert函数的情况下进行保存?
4

1 回答 1

1

在 NDB 中,您必须使用 id 而不是 key_name。

于 2013-09-20T20:46:48.497 回答