Google app engine 仅获取实体的投影属性
如何仅获取实体的Google app engine 仅获取实体的投影属性,google-app-engine,google-cloud-datastore,app-engine-ndb,google-app-engine-python,Google App Engine,Google Cloud Datastore,App Engine Ndb,Google App Engine Python,如何仅获取实体的\u属性列表中投影查询中指定的实体属性 我的意思是: class Demo(ndb.Model): first_prop = ndb.StringProperty() second_prop = ndb.StringProperty() Demo( first_prop='First', second_prop='Second' ).put() q = Demo.query( projection=[first_prop] ) e = q.fetch() pr
\u属性列表中投影查询中指定的实体属性
我的意思是:
class Demo(ndb.Model):
first_prop = ndb.StringProperty()
second_prop = ndb.StringProperty()
Demo( first_prop='First', second_prop='Second' ).put()
q = Demo.query( projection=[first_prop] )
e = q.fetch()
print e[0]._properties.keys()
返回[“第二道具”、“第一道具”]
。我希望len(\u properties)
成为1
..有一个\u projection
属性可用于结果(通过在浏览器中至少加载两次来调用此处理程序):
另外,
q、 投影返回(演示('first_prop'),)
您是否可能在Demo.query(projection=[first\u prop])
中传递了实体或其他对象,而不是字符串形式的属性名称,即“first\u prop”?您应该得到与r[0]相同的结果。
我知道queryq
具有projection
属性,只是不知道如何检查属性是否属于该投影:q.projection
返回(演示('first_prop'),)
但是如果q_proj中的q_proj和prop不起作用。。。
import webapp2
from google.appengine.ext import ndb
class Dummy(ndb.Model):
p1 = ndb.StringProperty()
p2 = ndb.StringProperty()
class ProjectionHandler(webapp2.RequestHandler):
def get(self):
# run this handler at least twice before looking at the console output
d = Dummy(id='abc')
d.p1 = 'p1'
d.p2 = 'p2'
d.put()
q = Dummy.query(projection=['p1'])
r = q.fetch()
if len(r) > 0:
print r[0]._properties.keys() # prints: ['p1', 'p2']
print r[0]._projection # prints: ('p1',)
app = webapp2.WSGIApplication([
('/projection', ProjectionHandler)
])