我能够通过参数替换将字符串变量正确传递给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
,请帮助我正确处理我的代码。
答案 0 :(得分:0)
您是否尝试过filter('user_name = ', str(user_name))
?
我想您确定用户名具有预期的内容。
答案 1 :(得分:0)
我想我已经得到了它,我尝试使用它,
p = models.UserDetails.gql('WHERE user_name = :uname', uname = user_name).fetch(1)
我得到了预期的结果集。我想知道为什么其他格式在字符串替换中存在问题。
答案 2 :(得分:0)
尝试记录repr(user_name)
以验证字符串与您期望的字符串完全相同(并且它不是unicode而不是raw)。还要尝试记录表达式user_name == "peter rice"
。除此之外,我看不出它为什么不起作用的任何理由 - API实际上没有办法影响这一点,因为它不知道你传递的参数来自哪里。