8
votes

Django demande.user.user.Ausername ne fonctionne pas

salut J'ai un problème avec le système de modèles Django. Lorsque je souhaite vérifier le modèle si un utilisateur est connecté avec: XXX

Je ne sais pas dans la partie de réussite. Lorsque j'utilise dans une vue: xxx

Cela me montre correctement la partie d'autre. J'espère que quelqu'un peut m'aider. Merci Phil


0 commentaires

5 Réponses :


1
votes

Avez-vous passé votre instance "utilisateur" à partir de la vue sur le modèle? Vous devez vous assurer qu'il est dans le même contexte que vous passez dans le rendu_to_reesponse () ou la méthode de rendu de rendu que vous choisissez pour rendant le contexte de la vue dans le modèle.


0 commentaires

2
votes

Vous devez vous assurer que vous laissez «demande.user» dans le rendu. Ou mieux utiliser le rendu de contexte basé sur le contexte: xxx

Le contexte_instance utilisera le processeur de contexte de middleware authentifiant pour définir "l'utilisateur" à votre vue.


0 commentaires

9
votes

Il existe un exemple de manipulation du contexte dans Partie 4 du tutoriel de Django. Toutefois, En bref ...

Le meilleur moyen de faire est avec le procédeur de contexte d'authentification de Django. Assurez-vous que vous l'avez toujours dans Vos paramètres . Vous devez ensuite utiliser DemandeContext P>

Cela changera essentiellement votre code à ceci. P>

from django.template import RequestContext
# ...
return render_to_response('index.html', {
    'inhalt': 'Succesfully loged in'
}, RequestContext(request))


0 commentaires

3
votes

Dans votre python, vous récupérez l'objet utilisateur qui est connecté. I.e Définir une fonction get_current_user.

Votre réponse ressemblerait à quelque chose comme: xxx

puis sur votre modèle Django, vous pouvez simplement aller comme: xxx < / p>


1 commentaires

+1 Le {{utilisateur}}} est disponible par défaut, contrairement à la variable {{request.user}} variable. Pour ce dernier, vous devez activer django.core.context_processors.request . Je trouve cela mieux pour les versions de Django actuelles Bien que Stackoverflow.com/a/5301918/781695 est également correct.



5
votes

N'oubliez pas d'ajouter 'django.core.contextextext_processors.request' strong> à votre template_context_processeurs dans vos paramètres.py

Exemple: P>

# import
from django.template import RequestContext

# render
if not request.user.is_authenticated():
    return render_to_response('index.html', {'inhalt': 'Not loggged in'})
else:
    return render_to_response('index.html', {'inhalt': 'Succesfully logged in'}, RequestContext(request))


0 commentaires