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.