【问题标题】:why does gql query result cause exception when calling get()为什么调用get()时gql查询结果会出现异常
【发布时间】:2011-02-09 00:56:21
【问题描述】:

我正在尝试从我的数据存储中检索一个条目:

 query = UserData.gql("WHERE mDeviceId = :1", id)
 Utils.log("my Object:" + str(query))
 entry = query.get()

碰巧变量“id”甚至不存在(错字),所以我知道如何解决这个问题,但我不明白为什么我得到的结果不允许我调用 get()在上面。当我这样做时,我得到了错误:

Exception: Unsupported type for property  : <type 'builtin_function_or_method'>

通常我只检查是否 entry == None 来查看是否没有结果。有谁知道为什么会发生这种情况以及我是否应该以不同的方式检查 None 以防我将来有这样的拼写错误?

【问题讨论】:

    标签: google-app-engine gql


    【解决方案1】:

    一个名为id 的变量未在您的代码中定义,因此它传递了内置函数id,并且QL 抱怨它在期望一个值(整数?)时得到一个函数。

    在使用之前检查以确保为 id 分配了一个值。

    更好的是,不要用你自己的变量来隐藏内置函数——它会导致像这样令人困惑的错误。 :-)

    【讨论】:

    • ohhhh,我什至没有意识到 'id' 是一个内置函数。我认为这只是一个拼写错误的变量。当我的日志调用成功时它把我扔了,这暗示我 gql 调用本身没有问题。谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-13
    • 1970-01-01
    • 1970-01-01
    • 2011-03-01
    相关资源
    最近更新 更多