Skip to main content
 首页 » 编程设计

python之为什么我不能按用户属性查询

2025年05月04日6jiqing9006

我有一个应用程序可以存储带有所有者电子邮件的实体。我的 models.py 看起来像这样:

from google.appengine.ext import db 
from google.appengine.api import users 
 
class GenericModel(db.Model): 
    '''GenericModel is inherited by other model definitions.''' 
    DateAdded = db.DateTimeProperty(auto_now_add = True) 
    owner = db.UserProperty() 
 
class CASentry(GenericModel): 
    description = db.TextProperty() 
    date = db.DateProperty() 
    hours = db.FloatProperty() 
    location = db.StringProperty() 

当我从开发服务器上的交互式控制台运行它时:

from google.appengine.ext import db 
t = db.GqlQuery('''SELECT * FROM CASentry''').fetch(1)[0] 
print t.owner 
 
t = db.GqlQuery('''SELECT * FROM CASentry where owner = 'test@example.com' ''').fetch(1) 
print t 

我明白了:

test@example.com 
[] 

我觉得期待这样的事情:

test@example.com 
[<models.CASentry object at 0x123456>] 

有人能看出我的代码有问题吗?

请您参考如下方法:

您应该提供 User 而不是字符串:

t = db.GqlQuery("SELECT * FROM CASentry where owner = :owner", owner=User(email="test@example.com")).fetch(1)