Album 모델은 다음과 같이 정의
from google.appengine.api import users from google.appengine.ext import ndb class AlbumModel(ndb.Model): artist = ndb.StringProperty() title = ndb.StringProperty(indexed=False) label = ndb.StringProperty() user = ndb.UserProperty() created_at = ndb.DateTimeProperty(auto_now_add=True) updated_at = ndb.DateTimeProperty() last_login = ndb.DateTimeProperty(auto_now=True)
그리고 템플릿으로 class를 넘긴다.
template = template_env.get_template('main.html') context = { 'albums' : albums, } self.response.out.write(template.render(context))
템플릿에서는 다시 모듈로 album의 키 값을 넘겨야 하는데,
<form action="/delete" method="post"> <input type="submit" id="button_delete" name="button_delete" value="Delete"/> <input type="hidden" name="key" value="{{album.key.urlsafe()}}"/> </form>
album.key.urlsafe() 요것이 핵심.
그럼 모듈에서는 다시,
def post(self): key_string = self.request.get('key') self.response.out.write(key_string) rev_key = ndb.Key(urlsafe=key_string) album = rev_key.get() self.response.out.write(album)
이러면 정상적으로 불려져왔음이 확인 가능하다.