क्षमा करें अगर आपने इससे पहले पूछा था तो आपने मेरी मदद करने की कोशिश की। उस प्रश्न को हटाना पड़ा क्योंकि मुझे किसी कारण से अतिरिक्त जानकारी संपादित करने की अनुमति नहीं दी गई थी।django टेम्पलेट में user.is_authenticated के साथ परेशानी होने के कारण
मैं अपने django वेबसाइट पर उपयोगकर्ता प्रमाणीकरण को लागू करने पर काम कर रहा हूं। सब कुछ काम करता है। मेरे विचार, मॉडल, यूआरएल, आदि सभी स्थापित हैं। उपयोगकर्ता पंजीकरण कर सकते हैं, लॉग इन कर सकते हैं, लॉग आउट कर सकते हैं। मुद्दा मैं आ रही हैं कोड के इस बिट के साथ है:
{% if request.user.is_authenticated %}
<li><a href="/logout">Log Out</a></li>
{% else %}
<li><a href="/login">Log In</a></li>
{% endif %}
यहां तक कि जब मैं में लॉग इन कर रहा हूँ के बजाय "बाहर लॉग इन करें" एक विकल्प के रूप में, यह अभी भी प्रदर्शित कर रहा है "प्रवेश करें"। हालांकि, अगर मैं लिंक पर क्लिक करता हूं, तो यह मुझे/प्रोफ़ाइल पर रीडायरेक्ट करेगा क्योंकि अगर मैं लॉग इन हूं तो दृश्य यह करने के लिए कहता है। इसलिए, स्पष्ट रूप से यह जानता है कि मैं लॉग इन हूं, लेकिन टेम्पलेट नहीं है readint user.is_authenticated सत्य के रूप में।
अनुरोधों के लिए लॉग इन करने के लिए संबंधित दृश्य है:
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))
मेरे टेम्पलेट संदर्भ प्रोसेसर हैं ("django.contrib.auth.context_processors.auth लागू करने के साथ यह कर सकते हैं आप
true
याfalse
की तरह अपने जावास्क्रिप्ट मूल्य के लिए उदाहरण के लिए पारित करने के लिए की जरूरत है ", " 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 ") क्या अनुरोध एक? – Xonalपथ डॉक्स मैं से जुड़ा हुआ में दी गई है करने के लिए पथ है। – Alasdair
ओह, मुझे नहीं पता था मैं अनुरोध छोड़ दिया है। user.is_authenticated। मैंने इसे जोड़ने का प्रयास किया क्योंकि मैंने सोचा था कि इससे मदद मिलेगी, लेकिन ऐसा नहीं हुआ। टेम्पलेट "अनुरोध" के साथ या उसके बिना काम नहीं करता है। – Xonal