application = webapp.WSGIApplication([そして、main.pyに以下のリストのようにDeletePageクラスの処理を追記します。
('/', MainPage),
('/del',DeletePage)
], debug=True)
self.redirect(users.create_login_url(self.request.uri))このように、users.create_login_urlで取得したアドレスをself.redirectでリダイレクトすることで、ログインページにジャンプし、ログイン後に再び必要なページに戻る処理が作成できます。
data = MyData.get_by_id(long(id))「get_by_id」メソッドで指定したID番号のエンティティを取得し、その「delete」メソッドを呼び出すだけでエンティティは削除されます。実に単純ですね。
data.delete()
※リストが表示されない場合
AddBlockなどの広告ブロックツールがONになっているとリストなどが表示されない場合があります。これらのツールをOFFにしてみてください。
class DeletePage(webapp.RequestHandler):
def get(self):
usr = users.get_current_user()
if usr == None:
self.redirect(users.create_login_url(self.request.uri))
return
id = self.request.get('id')
if id:
data = MyData.get_by_id(long(id))
msg = 'これを削除していいですか?'
else:
data = None
msg = '削除するエンティティのIDが指定されていません。'
params = {'data':data,
'message':msg}
fpath = os.path.join(os.path.dirname(__file__),'views','delete.html')
html = template.render(fpath,params)
self.response.headers['Content-Type'] = 'text/html'
self.response.out.write(html)
def post(self):
id = self.request.get('id')
data = MyData.get_by_id(long(id))
data.delete()
self.redirect('/')
| << 前へ | 次へ >> |