2012-06-03 2 views
0

데이터베이스를 수정하고 싶습니다. 나는 이것을 시도했으나 효과가 없다.appengine에서 데이터베이스의 항목을 수정하는 방법은 무엇입니까?

def post(self, pageName):$ 
     content = self.request.get('content')$ 
$ 
     p = db.GqlQuery("SELECT * FROM Pages")$ 
     pages = p.run(batch_size = 1000)$ 
     pageExist = False$ 
$ 
     for page in pages:$ 
      if pageName == page.name:$ 
       page.content = content$ 
       break$ 
      else:$ 
       p = Pages(name = pageName, content = content)$ 
       p.put()$ 
     self.redirect(pageName)$ 

코드 도움이 필요합니다.

+0

같은 일을하고 행복 할 것 같아요? – geoffspear

답변

2

pageName을 찾고 해당 페이지에서 content을 변경하면 리디렉션 전에 페이지를 저장해야합니다.

그리고 의도가 새로운 content으로 페이지를 업데이트하려는 것이라면, 그 else: 블록으로 무엇을 달성하려고하는지 전혀 확신 할 수 없습니다.

나는 당신이`$`의로 무엇

query = db.GqlQuery("SELECT * FROM Pages WHERE pageName=:1", pageName) 
for page in query: 
    page.content = content 
    page.put() 
+0

Else는 스키마에 새로운 행을 광고합니다. 저장 코드를 제공해 주시겠습니까? – user1322731

+0

else 블록을 읽지 않습니다. 위 코드가 추가되었습니다. 기본적으로, 당신은'put()'을 놓치고 있습니다. –

+0

또한,'pageName'을 필터링하지 않으면 끊임없이 증가하는 중복 된'Pages'를 생성하게 될 것입니다. 중복을 원하지 않는다고 가정 할 때,'pageName'을 Key의 이름으로 사용하는 것을 고려하십시오. –

관련 문제