Hi Drew and all,

I saw the same exact problem Drew saw with *defaultdict(list)*. For the 
benefit of any future debuggers, I thought I'd document what went wrong in 
our case.

One of the functions in the controller was inappropriately named *list()*, 
thus overriding the definition of *list()* itself. By the time the model 
code was called -- *g = defaultdict(list)* and then 
*g['foo'].append('someValue')* -- it raised the *AttributeError: 'dict' 
object has no attribute 'append'* exception that Drew saw.

This problem would not occur if the controller was not involved - i.e. from 
the Python interpreter.

warm regards,


On Friday, March 16, 2018 at 8:22:06 PM UTC-5, Drew Howell wrote:
>
> After taking a break and working on another section, I finally found what 
> was causing the issue. There was, indeed, an error elsewhere within that 
> controller, which was causing me all the headache. I appreciate your guys' 
> help! Thanks.
>
> On Sunday, March 11, 2018 at 11:14:27 PM UTC-4, Drew Howell wrote:
>>
>> I seem to be having issues getting defaultdict to work within Web2Py. I 
>> am using Web2Py version 2.16.1 (Python 2.7.11).
>>
>> Here is the code in my controller:
>> from collections import defaultdict
>> g = defaultdict(list)
>> g['someKey'].append('someValue')
>>
>> Here is the error I'm getting:
>>
>> File "D:/web2py/applications/fpr/controllers/students.py" 
>> <http://127.0.0.1:8000/admin/default/edit/fpr/controllers/students.py>, line 
>> 14, in view
>>  g['someKey'].append('someValue')
>> AttributeError: 'dict' object has no attribute 'append'
>>
>> If I do the same thing in the Python Interpreter, I don't seem to get the 
>> issue.
>>
>> >>> from collections import defaultdict
>> >>> g = defaultdict(list)
>> >>> g['k'].append('v')
>> >>> print g['k']
>> ['v']
>>
>> Am I implementing this wrong or is there some sort of issue with using 
>> defaultdict(list) in Web2Py?
>>
>>

-- 
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 web2py+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to