Scusa se hai provato ad aiutarmi quando l'ho chiesto prima. Ho dovuto cancellare quella domanda perché non mi è stato permesso di modificare ulteriori informazioni per qualche motivo.Problemi con user.is_authenticated nel template django
Sto lavorando per implementare l'autenticazione utente sul mio sito Web django. Tutto funziona. I miei punti di vista, i modelli, gli URL, ecc. Sono tutti impostati. Gli utenti possono registrarsi, accedere, disconnettersi. Il problema che sto avendo è con questo pezzo di codice:
{% if request.user.is_authenticated %}
<li><a href="/logout">Log Out</a></li>
{% else %}
<li><a href="/login">Log In</a></li>
{% endif %}
Anche quando ho effettuato l'accesso, è ancora visualizzato "Log In" come opzione piuttosto che "Log Out". Tuttavia, se faccio clic sul link, verrà reindirizzato a/profile perché è quello che la vista dice di fare se ho effettuato l'accesso. Quindi, chiaramente sa che sono loggato, ma il modello non è readint user.is_authenticated come true.
La vista riguardanti il login richieste è:
def LoginRequest(request):
if request.user.is_authenticated():
return HttpResponseRedirect('/profile/')
if request.method == 'POST':
form = LoginForm(request.POST)
if form.is_valid():
username = form.cleaned_data['username']
password = form.cleaned_data['password']
profile = authenticate(username=username, password=password)
if profile is not None:
login(request, profile)
return HttpResponseRedirect('/profile/')
else:
return render_to_response('template/login.html', {'form': form}, context_instance=RequestContext(request))
else:
return render_to_response('template/login.html', {'form': form}, context_instance=RequestContext(request))
else:
''' user is not submitting the form, show them login form '''
form = LoginForm()
context = {'form': form}
return render_to_response('template/login.html', context, context_instance = RequestContext(request))
miei processori contesto template sono ("django.contrib.auth.context_processors.auth " "django.core.context_processors.debug", "django.core.context_processors.i18n", "django.core.context_processors.media", "django.core.context_processors.static", " Django. core.context_processors.tz ", " django.contrib.messages.context_processors.messages ") qual è il percorso per la richiesta? – Xonal
Il percorso è indicato nella documentazione a cui mi sono collegato. – Alasdair
Oh, non mi ero accorto di aver lasciato la richiesta. user.is_authenticated in là. Ho provato ad aggiungerlo perché pensavo che sarebbe stato d'aiuto, ma non lo è stato. Il modello non funziona con o senza "request." lì – Xonal