Home > Django > Django: too many values to unpack

Django: too many values to unpack

3 Aprile 2013

Mi è capitato dopo un’aggiornamento di Django, di tentare
di entrare nella sezione di Admin di una mia app, senza successo.
L’errore era sempre il medesimo:

ValueError at /admin/

too many values to unpack

Request Method: 	POST
Request URL: 	http://127.0.0.1:8000/admin/
Django Version: 	1.3
Exception Type: 	ValueError
Exception Value: 	

too many values to unpack
...

controllando il traceback si risale alla causa dell’errore:

algo, salt, hsh = enc_password.split('$')

In pratica la gestione della password è cambiata tra le diverse
versioni di django, per cui una password settata con una versione
di django, è mal digerita nei tentativi di accesso successivi, con
versioni di django differenti.

per sistemare la password, da terminale è possibile utilizzare il
comando:

python manage.py changepassword <username>

Rilanciato il server l’accesso alla sezione di admin è tornata
a funzionare correttamente.

Nota:

Controllando la tabella “auth_user” abbiamo la password criptata,
così composta:

sha1$d1692$11ea66b009f66672b7bdfe8ef3a2df1cc8acc37d

come si nota appaiono due simboli ‘$’, grazie ai quali la riga di
codice

algo, salt, hsh = enc_password.split('$')

splitta la stringa sulle tre variabili algo, salt e hsh.
Qualora la password non avesse questa struttura si solleverebbe
l’eccezione che non consente l’accesso alla sezione di admin.

Categorie:Django Tag:
I commenti sono chiusi.