According to your model, valor is a text field, and projection queries do not allow text fields either.
Anthony On Tuesday, June 12, 2012 7:54:04 AM UTC-4, Alex Benfica wrote: > > Hi Anthony, > > You are rigth... but I left only the Field valor and still returns empty. > :) > > That is the table... > > Field('nome', > 'string', > > required = True, > ), > > Field('valor', > 'text', > label="Valor: caso seja string ou numérico > (opcional)", > ), > > Field('valor_blob', > 'blob',), > > Field('upl_valor', > 'upload', > uploadfield='valor_blob', > label="Valor binario (opcional)", > ), > > Field('descricao', > 'text', > ), > > > > > > > On Monday, June 11, 2012 10:54:00 PM UTC-3, Anthony wrote: >> >> Is tabela.valor_blob a Blob field? The GAE documentation says projections >> can only include indexed properties, so no Text or Blob properties -- see >> https://developers.google.com/appengine/docs/python/datastore/queries#Query_Projection. >> >> I would think that would result in an error, though. >> >> Anthony >> >> On Monday, June 11, 2012 9:35:28 PM UTC-4, Alex Benfica wrote: >>> >>> Hi Massimo and howesc! >>> >>> Testing again... I found a problem: >>> >>> Do not return errors ( but returns no rows... ). >>> rows = self.db(self.tabela.nome == >>> nome).select(self.tabela.valor, self.tabela.valor_blob) >>> >>> Returns the desired rows... >>> rows = self.db(self.tabela.nome == nome).select() >>> >>> >>> >>> >>> >>> >>> On Monday, June 11, 2012 10:10:18 PM UTC-3, Alex Benfica wrote: >>>> >>>> Hello people! >>>> >>>> First of all... thank you Massimo and howesc! >>>> >>>> About this question that I did and Massimo and howesc answerd on Stack >>>> Overflow. >>>> I tried to put some code there... but I could't... >>>> >>>> >>>> http://stackoverflow.com/questions/10940995/does-google-app-engine-projection-queries-are-supported-by-web2py >>>> >>>> I did the web2py update to trunk and some parts of my code stopped >>>> working. >>>> Most of problems I got where like this below, that I still don't know >>>> how to solve and keep it efficient, as I need to find the values by >>>> "name", >>>> not by id. >>>> >>>> I order to make it work, I just removed the fields I specified. >>>> >>>> Was this way (causing errors) >>>> self.db(self.tabela.nome == nome).select(self.tabela.valor, >>>> self.tabela.valor_blob, self.tabela.nome) >>>> >>>> I did that... now it selects all fields again... but works! >>>> self.db(self.tabela.nome == nome).select() >>>> >>>> I'm problably missing something! How can I use projection queries with >>>> web2py? The ID field that web2py creates are the same ID used by datastore >>>> on GAE? >>>> I have a product that I need find by name... can I query it using >>>> projection queries? Is that? >>>> >>>> >>>> >>>> >>>> rows = self.db(self.tabela.nome == nome).select(self.tabela.valor, >>>> self.tabela.valor_blob, self.tabela.nome) >>>> File "D:\Dropbox\Devel\www\web2py\gluon\dal.py", line 8161, in select >>>> return adapter.select(self.query,fields,attributes) >>>> File "D:\Dropbox\Devel\www\web2py\gluon\dal.py", line 4149, in select >>>> for t in fields] for item in items] >>>> File "C:\Program Files >>>> (x86)\Google\google_appengine\google\appengine\ext\db\__init__.py", line >>>> 2313, in next >>>> return self.__model_class.from_entity(self.__iterator.next()) >>>> File "C:\Program Files >>>> (x86)\Google\google_appengine\google\appengine\datastore\datastore_query.py", >>>> >>>> line 2809, in next >>>> next_batch = self.__batcher.next() >>>> File "C:\Program Files >>>> (x86)\Google\google_appengine\google\appengine\datastore\datastore_query.py", >>>> >>>> line 2671, in next >>>> return self.next_batch(self.AT_LEAST_ONE) >>>> File "C:\Program Files >>>> (x86)\Google\google_appengine\google\appengine\datastore\datastore_query.py", >>>> >>>> line 2708, in next_batch >>>> batch = self.__next_batch.get_result() >>>> File "C:\Program Files >>>> (x86)\Google\google_appengine\google\appengine\api\apiproxy_stub_map.py", >>>> line 604, in get_result >>>> return self.__get_result_hook(self) >>>> File "C:\Program Files >>>> (x86)\Google\google_appengine\google\appengine\datastore\datastore_query.py", >>>> >>>> line 2450, in __query_result_hook >>>> self._batch_shared.conn.check_rpc_success(rpc) >>>> File "C:\Program Files >>>> (x86)\Google\google_appengine\google\appengine\datastore\datastore_rpc.py", >>>> >>>> line 1214, in check_rpc_success >>>> raise _ToDatastoreError(err) >>>> BadRequestError: cannot use projection on a property with an equality >>>> filter >>>> >>>