无法通过参数替代在GQL查询传递一个字符串时,得到的结果
-
11-09-2019 - |
题
我能够字符串变量正确传递给通过参数替换的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可以影响这一点,因为它不知道你在传递参数来源于
不隶属于 StackOverflow