You definitely can do queries by your keys. I'm not a Python person but it looks to me like your problem is that you've forgotten the <= part of the query so you get the _slides objects because _slides is > _blocks. You also get faq, default, shipping etc. because the underscore character is less than in Unicode (and thus ASCII) than the lower case letters. So try adding: __key++ <= :2 where :2 is a key equal to '_blocks' + \uFFFD'
Stephen www.cortexconnect.com On Tue, Aug 30, 2011 at 1:39 PM, S.Prymak <[email protected]> wrote: > Here is why comparing key does not work: > > import models > > pk=models.Page(key_name='_blocks') > > q=models.Page.gql("WHERE __key__ >= :1", pk.key()) > > [p.key().name() for p in q] > > [u'_blocks--callout', u'_blocks--callout-contact', u'_blocks--footer-center', > u'_blocks--teaser', u'_slides--home--1', u'about', u'collections', > u'default', u'faq', u'shipping'] > > > > In my implementation key name is a "slug" for page. I want only those pages > wich slug begins with '_blocks'. Is it possible quering by key name? > > I thought about [p for p in models.Page.all() if p.key().name() >= > '_blocks'], but I doubt it has good perfomance on large set of entities. > > -- > You received this message because you are subscribed to the Google Groups > "Google App Engine" group. > To view this discussion on the web visit > https://groups.google.com/d/msg/google-appengine/-/Z8h6AQSoQw4J. > > To post to this group, send email to [email protected]. > To unsubscribe from this group, send email to > [email protected]. > For more options, visit this group at > http://groups.google.com/group/google-appengine?hl=en. > -- You received this message because you are subscribed to the Google Groups "Google App Engine" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.
