App Engine Python db.delete未按预期工作

时间:2014-02-23 00:33:42

标签: python google-app-engine

请帮助我理解我在这里做错了什么。

我在Google App Engine上运行一个小型视频游戏,在游戏中我们有一个内部消息服务。每条消息都有一个状态键列表,用于跟踪玩家是否已阅读消息。

我的问题是,当我尝试删除密钥列表时,无论列表中的密钥数是多少,都只会从数据存储区中删除其中一个实体。

class Game_Message(db.Model)
  sender = db.StringProperty()
  recipients = db.ListProperty(str)
  status_keys = db.ListProperty(db.Key)
  payload = db.TextProperty()

  def add_status_keys(self):
    self.status_keys = []
    for user_id in self.recipients:
      gms = Game_Message_Status.create(self, user_id)
      self.status_keys.append(gms.key())

  def remove_status_keys(self):
    db.delete(self.status_keys)

我发现多次调用db.delete 删除所有实体,但我不明白为什么。

例如:这可以正常工作。

  def remove_status_keys(self):
    db.delete(self.status_keys)
    db.delete(self.status_keys)

0 个答案:

没有答案