さて、私はこのモードを持っています:
class Posts(db.Model):
rand1 = db.FloatProperty()
#other models here
そしてこのコントローラー:
class Random(webapp.RequestHandler):
def get(self):
rand2 = random.random()
posts_query = db.GqlQuery("SELECT * FROM Posts WHERE rand1 > :rand2 ORDER BY rand LIMIT 1")
#Assigning values for Django templating
template_values = {
'posts_query': posts_query,
#test purposes
'rand2': rand2,
}
path = os.path.join(os.path.dirname(__file__), 'templates/random.html')
self.response.out.write(template.render(path, template_values))
したがって、エンティティが追加されると、ランダムフロートが生成され(0-1)、ランダムエンティティを取得する必要がある場合は、単純なSELECTクエリを使用できるようにしたいと思います。次のエラーが発生します:
BadArgumentError('Missing named arguments for bind, requires argument rand2',)
今、私が行けばこれはうまくいきます:
posts_query = db.GqlQuery("SELECT * FROM Posts WHERE rand1 > 1 ORDER BY rand LIMIT 1")
明らかに私の質問は間違っています。whereステートメントで変数をどのように使用するか:S