删除NDB中最后一个子节点中的实体总是被删除

时间:2015-07-20 22:25:05

标签: python-2.7 google-app-engine google-cloud-datastore webapp2

我的模型类似于Python GAE(问候和作者)文档中的示例。我在删除时遇到问题,因为它总是被删除的最后一个孩子,而不是我所定位的实体。

class Delete(webapp2.RequestHandler):
     def post(self):
         greeting_key = ndb.Key(urlsafe=self.request.get('for_deletion')) #it's the key's urlsafe that is being passed here
         greeting_key.delete()
         self.redirect('/events')

以下是生成请求的代码段:

               self.response.write('''<br><br><form action="/delete" method="post">        
                   <input type="hidden" name="for_deletion" value="%s">
                   <input type="submit" value="Delete Most Recent Info"><br><br>
               <form>
               ''' % post.key.urlsafe())

1 个答案:

答案 0 :(得分:1)

问题来自于我有很多名为=&#34; for_deletion&#34;的隐藏输入。服务器脚本选择队列中的最后一个,这就是我删除最后一个孩子的原因。

我已修改了生成请求的html页面,因为我使用javascript询问用户是否要删除数据然后我会继续发送一个带有名为&#的隐藏输入的表单34; for_deletion&#34 ;.通过这种方式,我将确保只有一个html元素名称=&#34; for_deletion&#34;。

以下是js文件的代码片段:

         document.body.innerHTML += '<form id="dynForm" action="/delete" method="post"><input type="hidden" name="for_deletion" value=' + urlsafe + '></form>';
         document.getElementById("dynForm").submit();