Ouch! Thank you. Fix in trunk.

On Monday, 20 August 2012 05:11:01 UTC-5, Uolter wrote:
>
> I got the same error:
>
> global name 'ObjectId' is not defined
>
>
> and I just applied what I think is the required fix:
>
> Edit the gluon/dal.py file:
>
>  - go to the line 4882. The select method inside the MongoDBAdapter class.
>  - after the method signature add this try catch block:
>
>          try:
>             from pymongo.objectid import ObjectId
>         except ImportError:
>             from bson.objectid import ObjectId
>
> This should fix the issue.
>
> I'm not allowed to commit this code. Whether it's fine Massimo can do that.
>
> Cheers,
>
> Walter
>
>
> Il giorno martedì 7 agosto 2012 18:01:44 UTC+2, Elton Pereira de Lima ha 
> scritto:
>>
>> After upgrading(git pull), I got a new error.
>>
>> NameError: global name 'ObjectId' is not defined
>>
>> Traceback (most recent call last):
>>   File "/home/eltonplima/workspace/web2py/gluon/restricted.py", line 205, in 
>> restricted
>>     exec ccode in environment
>>   File 
>> "/home/eltonplima/workspace/web2py/applications/sqm/controllers/appadmin.py" 
>> <http://127.0.0.1:8001/admin/default/edit/sqm/controllers/appadmin.py>, line 
>> 433, in <module>
>>   File "/home/eltonplima/workspace/web2py/gluon/globals.py", line 182, in 
>> <lambda>
>>     self._caller = lambda f: f()
>>   File 
>> "/home/eltonplima/workspace/web2py/applications/sqm/controllers/appadmin.py" 
>> <http://127.0.0.1:8001/admin/default/edit/sqm/controllers/appadmin.py>, line 
>> 127, in insert
>>     form = SQLFORM(db[table], ignore_rw=ignore_rw)
>>   File "/home/eltonplima/workspace/web2py/gluon/sqlhtml.py", line 920, in 
>> __init__
>>     inp = self.widgets.options.widget(field, default)
>>   File "/home/eltonplima/workspace/web2py/gluon/sqlhtml.py", line 224, in 
>> widget
>>     options = requires[0].options()
>>   File "/home/eltonplima/workspace/web2py/gluon/validators.py", line 479, in 
>> options
>>     self.build_set()
>>   File "/home/eltonplima/workspace/web2py/gluon/validators.py", line 466, in 
>> build_set
>>     records = self.dbset(table).select(*fields, **dd)
>>   File "/home/eltonplima/workspace/web2py/gluon/dal.py", line 8420, in select
>>     return adapter.select(self.query,fields,attributes)
>>   File "/home/eltonplima/workspace/web2py/gluon/dal.py", line 4877, in select
>>     record[column],ObjectId):
>> NameError: global name 'ObjectId' is not defined
>>
>>
>> On Tuesday, August 7, 2012 11:33:50 AM UTC-3, Massimo Di Pierro wrote:
>>>
>>> This helps. I think I just fixed it in trunk. Can you check and confirm 
>>> if it is fixed?
>>>
>>> On Tuesday, 7 August 2012 04:35:33 UTC-5, Elton Pereira de Lima wrote:
>>>>
>>>> Same error.
>>>>
>>>> One detail I forgot to mention, this only happens when I use mongodb.
>>>>
>>>> Follows the traceback:
>>>>
>>>> Traceback (most recent call last):
>>>>   File "/home/eltonplima/workspace/web2py/2.0/web2py/gluon/restricted.py", 
>>>> line 205, in restricted
>>>>     exec ccode in environment
>>>>   File 
>>>> "/home/eltonplima/workspace/web2py/2.0/web2py/applications/sqm/controllers/appadmin.py"
>>>>  <http://127.0.0.1:8000/admin/default/edit/sqm/controllers/appadmin.py>, 
>>>> line 432, in <module>
>>>>   File "/home/eltonplima/workspace/web2py/2.0/web2py/gluon/globals.py", 
>>>> line 182, in <lambda>
>>>>     self._caller = lambda f: f()
>>>>   File 
>>>> "/home/eltonplima/workspace/web2py/2.0/web2py/applications/sqm/controllers/appadmin.py"
>>>>  <http://127.0.0.1:8000/admin/default/edit/sqm/controllers/appadmin.py>, 
>>>> line 126, in insert
>>>>     form = SQLFORM(db[table], ignore_rw=ignore_rw)
>>>>   File "/home/eltonplima/workspace/web2py/2.0/web2py/gluon/sqlhtml.py", 
>>>> line 920, in __init__
>>>>     inp = self.widgets.options.widget(field, default)
>>>>   File "/home/eltonplima/workspace/web2py/2.0/web2py/gluon/sqlhtml.py", 
>>>> line 224, in widget
>>>>     options = requires[0].options()
>>>>   File "/home/eltonplima/workspace/web2py/2.0/web2py/gluon/validators.py", 
>>>> line 479, in options
>>>>     self.build_set()
>>>>   File "/home/eltonplima/workspace/web2py/2.0/web2py/gluon/validators.py", 
>>>> line 466, in build_set
>>>>     records = self.dbset(table).select(*fields, **dd)
>>>>   File "/home/eltonplima/workspace/web2py/2.0/web2py/gluon/dal.py", line 
>>>> 8416, in select
>>>>     return adapter.select(self.query,fields,attributes)
>>>>   File "/home/eltonplima/workspace/web2py/2.0/web2py/gluon/dal.py", line 
>>>> 4854, in select
>>>>     self._select(query,fields,attributes)
>>>>   File "/home/eltonplima/workspace/web2py/2.0/web2py/gluon/dal.py", line 
>>>> 4802, in _select
>>>>     raise SyntaxError, 'invalid select attribute: %s' % key
>>>> SyntaxError: invalid select attribute: distinct
>>>>
>>>>
>>>> On Tuesday, August 7, 2012 12:01:49 AM UTC-3, Cliff Kachinske wrote:
>>>>>
>>>>> I have created this problem by adding the unique argument to a table 
>>>>> column after populating it with data.  try removing it from the has_line 
>>>>> field.
>>>>>
>>>>> On Monday, August 6, 2012 8:19:36 PM UTC-4, Elton Pereira de Lima 
>>>>> wrote:
>>>>>>
>>>>>> I'm using the latest development version, and try to add a record by 
>>>>>> the administrative interface the following exception is raised:
>>>>>> invalid <type'exceptions.SyntaxError'> select attribute: distinct
>>>>>>
>>>>>> The error happens when trying to insert in squid_log table.
>>>>>>
>>>>>> db.define_table('squid_internal_host',
>>>>>>                 Field('ip', 'text', notnull=True, unique=True),
>>>>>>                 Field('hostname', 'string', length=32, unique=True,),
>>>>>>                 format='%(ip)s',
>>>>>>                 migrate=True)
>>>>>>
>>>>>> db.define_table('squid_log',
>>>>>>                 Field('timestamp', 'datetime', notnull=True),
>>>>>>                 Field('internal_host', db.squid_internal_host),
>>>>>>                 Field('log_line', 'text', notnull=True),
>>>>>>                 Field('elapsed_time', 'integer', notnull=True),
>>>>>>                 Field('hash_line', 'string', notnull=True, length=64, 
>>>>>> unique=True,),
>>>>>>                 Field('insert_timestamp', 'datetime', 
>>>>>> default=lambda:datetime.datetime.now()),
>>>>>>                 format='%(hash_line)s')
>>>>>>
>>>>>> I'm doing something wrong?
>>>>>>
>>>>>

-- 



Reply via email to