class Entry(Base):
amount = db.IntegerProperty()
entries = Entry.gql("WHERE amount > 0")
有没有办法用索引作为数组来引用条目结果,例如
my_entry = entries[4]
答案 0 :(得分:3)
entries = [x for x in Entry.gql("WHERE amount > 0")]
此答案和之前答案之间的区别在于它在数据存储区而不是在处理程序中进行过滤,并且不要求您猜测将返回的实体的最大数量。
答案 1 :(得分:2)
您可以在Query
实例上使用fetch()方法:
class Entry(Base):
amount = db.IntegerProperty()
entries = Entry.gql("WHERE amount > 0").fetch(5)
print entries[4].amount
答案 2 :(得分:1)
你必须做一个fetch()。这将为您提供一个条目列表。在那种情况下,my_entry = entries [4]将为您提供第五个对象。你要做的是操纵gql对象。这显然是行不通的。试试这个
class Entry(Base):
amount = db.IntegerProperty()
entries = Entry.gql("WHERE amount > 0").fetch(1000)
print entries[4].amount
答案 3 :(得分:1)
如果要在结果查询中引用特定索引的一个对象,可以使用fetch
db.Query
方法和offset
参数:
entry = Entry.gql("WHERE amount > 0").fetch(1, offset=4)[0]
print entry.amount
但是,如果要从查询结果中引用多个对象,请将它们全部fetch
并作为普通Python数组索引:
entries = Entry.gql("WHERE amount > 0").fetch(1000)
print entries[4].amount
print entries[5].amount
print entries[7].amount
# etc.
答案 4 :(得分:-1)
entries= [entry for entry from Entry.all() if entry.amount > 0]
print entries[4]