I have opened issue #1996 to cover this and can confirm works correclty 
once I remove the computed field from the auth_user table.

Many thanks
Donald

On Wednesday, August 29, 2018 at 12:58:21 AM UTC+1, Anthony wrote:
>
> Looks like a bug here: 
> https://github.com/web2py/web2py/blob/63972386c23961360d99c5ce49240b0aed5c820f/gluon/tools.py#L3657-L3661
>
> Presumably you have defined one or more extra_fields on db.auth_user that 
> are computed fields. That triggers the above code, but because the user 
> record has been deleted, None gets passed to self._update_session_user, 
> which generates an error.
>
> Please open a Github issue and refer back to this post.
>
> Anthony
>
> On Tuesday, August 28, 2018 at 6:13:53 PM UTC-4, Donald McClymont wrote:
>>
>>
>>
>> On Tuesday, August 28, 2018 at 12:16:59 PM UTC+1, Anthony wrote:
>>>
>>> Please post the traceback here. The error ticket fil
>>
>> Error ticket for "gdms"Ticket ID
>>
>> 127.0.0.1.2018-08-27.21-31-21.fbba2e6a-7e7d-4081-b191-b07d009d01c4
>> <type 'exceptions.TypeError'> 'NoneType' object is not iterableVersion
>> web2py™ Version 2.17.1-stable+timestamp.2018.08.06.01.02.56
>> Python Python 2.7.15: C:\Python27\python.exe (prefix: C:\Python27)
>> Traceback
>>
>> 1.
>> 2.
>> 3.
>> 4.
>> 5.
>> 6.
>> 7.
>> 8.
>> 9.
>> 10.
>> 11.
>> 12.
>> 13.
>> 14.
>> 15.
>> 16.
>> 17.
>> 18.
>>
>> Traceback (most recent call last):
>>   File "C:\web2py\gluon\restricted.py", line 219, in restricted
>>     exec(ccode, environment)
>>   File "C:/web2py/applications/gdms/controllers/default.py" 
>> <http://127.0.0.1:8081/admin/default/edit/gdms/controllers/default.py>, line 
>> 451, in <module>
>>   File "C:\web2py\gluon\globals.py", line 421, in <lambda>
>>     self._caller = lambda f: f()
>>   File "C:/web2py/applications/gdms/controllers/default.py" 
>> <http://127.0.0.1:8081/admin/default/edit/gdms/controllers/default.py>, line 
>> 449, in user
>>     return dict(form=auth())
>>   File "C:\web2py\gluon\tools.py", line 1799, in __call__
>>     return getattr(self, args[0])()
>>   File "C:\web2py\gluon\tools.py", line 3660, in profile
>>     self._update_session_user(user)
>>   File "C:\web2py\gluon\authapi.py", line 720, in _update_session_user
>>     user = Row(user)
>>   File "C:\web2py\gluon\packages\dal\pydal\helpers\classes.py", line 34, in 
>> __init__
>>     return self.__dict__.__init__(*args, **kwargs)
>> TypeError: 'NoneType' object is not iterable
>>
>> Error snapshot [image: help] 
>> <http://127.0.0.1:8081/admin/default/ticket/gdms/127.0.0.1.2018-08-27.21-31-21.fbba2e6a-7e7d-4081-b191-b07d009d01c4#>
>>
>> <type 'exceptions.TypeError'>('NoneType' object is not iterable)
>>
>> inspect attributes
>> Frames
>>    
>>    - 
>>    
>>    *File C:\web2py\gluon\restricted.py in restricted at line 219* code 
>>    arguments variables
>>    - 
>>    
>>    *File C:\web2py\applications\gdms\controllers\default.py in <module> 
>>    at line 451* code arguments variables
>>    - 
>>    
>>    *File C:\web2py\gluon\globals.py in <lambda> at line 421* code 
>>    arguments variables
>>    - 
>>    
>>    *File C:\web2py\applications\gdms\controllers\default.py in user at 
>>    line 449* code arguments variables
>>    - 
>>    
>>    *File C:\web2py\gluon\tools.py in __call__ at line 1799* code 
>>    arguments variables
>>    - 
>>    
>>    *File C:\web2py\gluon\tools.py in profile at line 3660* code arguments
>>     variables
>>    - 
>>    
>>    *File C:\web2py\gluon\authapi.py in _update_session_user at line 720* 
>>    code arguments variables
>>    - 
>>    
>>    *File C:\web2py\gluon\packages\dal\pydal\helpers\classes.py in 
>>    __init__ at line 34* code arguments variables
>>    Function argument list
>>    
>>    (self=<Row {}>, *args=(None,), **kwargs={})
>>    Code listing
>>    
>>    29.
>>    30.
>>    31.
>>    32.
>>    33.
>>    34.
>>    35.
>>    36.
>>    37.
>>    38.
>>    
>>    
>>    
>>    @implements_bool
>>    class BasicStorage(object):
>>        def __init__(self, *args, **kwargs):
>>            return self.__dict__.__init__(*args, **kwargs)
>>    
>>        def __getitem__(self, key):
>>            return self.__dict__.__getitem__(str(key))
>>    
>>    Variables
>>    self.__dict__ {}
>>    self <Row {}>
>>    args (None,)
>>    self.__dict__.__init__ <method-wrapper '__init__' of dict object>
>>    kwargs {}
>>    
>> Context
>>
>> locals request session response
>> In file: C:\web2py\applications\gdms\controllers/default.py
>>
>> 1.
>>
>> <code object <module> at 0000000004BED830, file 
>> "C:\web2py\applications\gdms\controllers/default.py", line 37>
>>
>> e is not easily readable, as it is a pickled object.
>>
>>

-- 
Resources:
- http://web2py.com
- http://web2py.com/book (Documentation)
- http://github.com/web2py/web2py (Source code)
- https://code.google.com/p/web2py/issues/list (Report Issues)
--- 
You received this message because you are subscribed to the Google Groups 
"web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to