2

我試圖讓我的ancestor query工作,但我不斷收到此錯誤:祖先查詢解析錯誤

BadQueryError: Parse Error: Identifier is a reserved keyword at symbol ANCESTOR

在這一行:

TweepleKey(twitter_handle)) 

我下面Using the Datastore教程(工作)但是當我試圖將祖先查詢的概念應用到我的代碼中時(見下文),它會一直產生上述錯誤。我哪裏做錯了?

import cgi 
import urllib 
import webapp2 
import cgi 

from google.appengine.ext import db 

# defines a data model for a geotweet 
# GeoTweet model has 1 property: twitter_handle 
class GeoTweet(db.Model): 
    twitter_handle = db.StringProperty() 
    date = db.DateTimeProperty(auto_now_add=True) 


def TweepleKey(twitter_handle=None): 
    # Constructs a Datastore key for a TweepleStore entity with twitter_handle 
    return db.Key.from_path('TweepleStore', twitter_handle or 'default_handle') 


class MainPage(webapp2.RequestHandler): 
    def get(self):  
     self.response.out.write("""<html><body>""") 
     twitter_handle = self.request.get('twitter_handle') 

     tweeple = db.GqlQuery("SELECT * " 
           "FROM GeoTweet " 
           "WHERE ANCESTOR = :1 " 
           "ORDER BY date DESC LIMIT 10", 
           TweepleKey(twitter_handle)) 
     for t in tweeple: 
      if t.twitter_handle: 
       self.out.write('<b>Found %s. Saved on %s.</b>' % (t.twitter_handle, t.date)) 
      else: 
       self.out.write('<b>%s was not found!' % twitter_handle) 

     self.response.out.write("""<form action="/search" method="post"> 
        <div><textarea name="twitter_handle" rows="1" cols="20">@example</textarea> 
        <div><input type="submit" value="Find"></div> 
       </form>   
      </body>  
     </html>""") 



class TweepleStore(webapp2.RequestHandler): 
    def post(self): 
     twitter_name = self.request.get('twitter_handle') 
     geotweet = GeoTweet(parent=TweepleKey(twitter_name)) 
     geotweet.twitter_handle = twitter_name 
     geotweet.put() 
     self.redirect('/?' + urllib.urlencode({'twitter_name': twitter_name})) 


app = webapp2.WSGIApplication([('/', MainPage), 
          ('/search', TweepleStore)], debug=True) 

回答

2

GQL reference說,使用WHERE ANCESTOR IS

+0

+1你是老闆我的朋友,謝謝,現在有用! – Anthony 2013-03-17 18:05:36