"Too many values to unpack" Exception

Viewed 432681

I'm working on a project in Django and I've just started trying to extend the User model in order to make user profiles.

Unfortunately, I've run into a problem: Every time I try to get the user's profile inside of a template (user.get_template.lastIP, for example), I get the following error:

Environment:

Request Method: GET
Request URL: http://localhost:8000/
Django Version: 1.1
Python Version: 2.6.1

Template error:
In template /path/to/base.tpl, error at line 19
   Caught an exception while rendering: too many values to unpack

19 :                Hello, {{user.username}} ({{ user.get_profile.rep}}). How's it goin? Logout


Exception Type: TemplateSyntaxError at /
Exception Value: Caught an exception while rendering: too many values to unpack

Any ideas as to what's going on or what I'm doing wrong?

6 Answers

try unpacking in one variable,

python will handle it as a list,

then unpack from the list

def returnATupleWithThreeValues():
    return (1,2,3)
a = returnATupleWithThreeValues() # a is a list (1,2,3)
print a[0] # list[0] = 1
print a[1] # list[1] = 2
print a[2] # list[2] = 3

Forgetting enumerate in attempt to access index in a loop

Throws ValueError: too many values to unpack (expected 2):

for index, value in your_list:
  assert value is your_list[index]  # this line not reached

No Exception thrown:

for index, value enumerate(in your_list):
  assert value is your_list[index]
Related