Bonjour,
Je suis bloqué depuis quelques jours sur une partie de code python qui ne fonctionne pas comme je le voudrais. C'est à propos du stockage de variable dans une session et la récupération de ces valeurs ailleurs?
Dans ma fonction remotelogin je stock certaines valeurs dans une session.
Code :
- def remotelogin(request):
- .......
- request.session['remote_auth_url'] = auth_url
- request.session['remote_unscoped_token'] = unscoped_token.id
- request.session['remote_projects'] = projects
- request.session['remote_neutron_url'] = neutron_url
- request.session['remote_dc'] = datacenter_id
- return redirect('project:networks', datacenter_id)
|
Le fichier url.py redirige vers une class view qui est celle ci :
Code :
- class NetworkView(tables.DataTableView):
- table_class = NetworksDCTable
- template_name = 'project/networks.html'
- def get_data(self):
- request = self.request
- remote_networks = list()
- remote_auth_url = request.session.get('remote_auth_url')
- remote_unscoped_token = request.session.get('remote_unscoped_token')
- projects = request.session.get('remote_projects')
- remote_dc = request.session.get('remote_dc')
- keystone_client = utils.get_keystone_client()
- for p in projects:
- .......
|
Et là ça bloque, quand je charge la page j'ai l'erreur suivante :
Django Version: 1.6.10
Exception Type: KeyError
Exception Value:
'NoneType' object is not iterable
Le problème c'est que toutes mes variables que je récupère de la session et que j'ai définit avant ont la valeur None. Pourtant il me semble que pour placer et récupérer une variable dans une session ce n'est pas plus compliqué que ça.
J'ai aussi essayé en faisant comme ci-dessous mais ça ne marche pas mieux. Il considère que "remote_auth_url = self.request.session['remote_auth_url']" est vide.
Code :
- remote_auth_url = remote_auth_url = self.request.session['remote_auth_url']
|
Je suis quasiment désespéré.