我能够字符串变量正确传递给通过参数替换的gqlquery,这里是我试图使用代码;

user_name = self.request.get('username') #retrieved from UI
p = models.UserDetails.all().filter('user_name = ', user_name).fetch(1)

我没有得到任何结果,查询默默地失败。但是,当我硬编码查询这样的,

p = models.UserDetails.all().filter('user_name = ', "peter rice").fetch(1)

我得到我预期的结果集。我想我传递变量user_name以错误的方式,请帮助我让我的一段代码的权利。

有帮助吗?

解决方案 2

我想我已经知道了,我尝试使用此,

p = models.UserDetails.gql('WHERE user_name = :uname', uname = user_name).fetch(1)

和我得到了预期的结果集。我不知道为什么其他格式在字符串替换的问题。

其他提示

你试过filter('user_name = ', str(user_name))?点击 我想你肯定USER_NAME有预期的内容。

尝试登录repr(user_name)验证字符串是完全一样的你期待什么(它没有统一而不是原始)。也尝试登录表达user_name == "peter rice"。除此之外,我看不出有任何理由为什么它是行不通的 - 有字面上没有办法的API可以影响这一点,因为它不知道你在传递参数来源于

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top