Django: too many values to unpack
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.
Commenti recenti