Home > Django > Django: too many values to unpack

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.

Categorie:Django Tag:
  1. Non c'è ancora nessun commento.
  1. No trackbacks yet.

Lascia un commento

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...

%d blogger cliccano Mi Piace per questo: