2009-12-29 7 views
0

Salut :) J'ai un petit problème avec le système double étend étend. J'ai un schéma:django double "étend", problème avec login

base.html ---> index.html ---> something.html 

Lorsque je me connecte au site que j'ai accès à tous les blocs invisibles (blocs invisibles pour les utilisateurs anonymes) comme:

{% if user.is_superuser %} 
    blabla 
{% endif %} 

Alors « blabla » est visible pour moi, parce que je suis un super-utilisateur et je suis connecté. Il fonctionne très bien dans base.html, index.html mais ne fonctionne pas dans something.html. Pourquoi?? Simple, il ressemble à l'utilisateur: 'superuser' est déconnecté.

+1

Il ne devrait pas y avoir de problème extension deux fois. Je pense que vous devez nous montrer votre code pour que nous puissions vous aider. – Alasdair

Répondre

1

Passez-vous la requête context à render_to_response (ou HttpResponse)?
Les informations sur l'utilisateur connecté doivent être stockées dans le contexte (see documentation), et vous devez le faire explicitement. Les vues génériques le font automatiquement, mais si vous utilisez votre propre vue pour something.html, avec un appel direct à render_to_response, vous n'avez pas d'informations sur l'utilisateur.

Par conséquent, le code de la vue devrait ressembler à:

from django.shortcuts import render_to_response 
from django.template import RequestContext 

def my_personalized_view(request): 
    return render_to_response('something.html', 
          {}, 
          context_instance=RequestContext(request))