Django में उपयोगकर्ता कैसे लॉगिन करें?

मैं वर्तमान में Django से अधिक परिचित होने के लिए एक Django परियोजना पर काम कर रहा हूँ। फिलहाल मैं दो टेम्पलेट्स बनाने की कोशिश कर रहा हूं, एक लॉगिन पृष्ठ के लिंक वाला मुख्य पृष्ठ है, जो उपयोगकर्ता को लॉगिन करेगा और फिर टेम्पलेट पर वापस आ जाएगा और अतिरिक्त सामग्री प्रदर्शित करेगा (nginx के माध्यम से संभाला जाएगा) और दूसरा टेम्पलेट जिसे लॉग इन करते समय ही एक्सेस किया जा सकता है। किसी कारण से, लेकिन काम नहीं लग रहा है या मान लें कि लॉगिन काम नहीं करता है।

यह views.py फ़ाइल है:

from django.shortcuts import render_to_response, get_object_or_404, HttpResponse
from django.contrib.auth import *
from django.contrib.auth.decorators import login_required

def index(request):
        return render_to_response('index.html')

@login_required
def main(request):
    return render_to_response('loginrequired.html')

और यह मुख्य टेम्पलेट है:

{% load static %}
{% get_static_prefix as STATIC_PREFIX %}

<html>
<head>
<title>Django NGINX Test</title>
</head>
<body>

Django NGINX Test




{% if user.is_authenticated %} Log out {{user.username}} {% else %} Log in {% endif %}

 
</body>
</html>

यह login_required टेम्पलेट है:

{% load static %}
{% get_static_prefix as STATIC_PREFIX %}

<html>
<head>
<title>Django NGINX Test</title>
</head>
<body>

Django NGINX Test




Welcome {{user.username}}. You're now logged in as required.

{% if user.is_authenticated %} Log out {{user.username}} {% else %} Log in {% endif %}

 
</body>
</html>

और आखिरी, लेकिन कम से कम मेरा लॉगिन टेम्पलेट:

<html>
<head>
    <title>User Login</title>
</head>

User Login

{% if form.errors %}
    
Your username and password didn't match. Please try again. {% endif %} <form method="post" action="." > {% csrf_token %}
{{ form.username }}
{{ form.password }} <input type="hidden" name="next" value="/" /> <input type="submit" value="login" /> </form> </body> </html>

I would appreciate any help. I have already studied the Django Tutorial for this, but I didn't get it.

0
जोड़ा
विचारों: 1
खैर, जब मैं login_required टेम्पलेट तक पहुंचने का प्रयास करता हूं तो यह लॉगिन के बिना मुझे यह दिखाता है। मुझे यकीन नहीं है, अगर मैं पहले से लॉग इन हूं, लेकिन यह मेरा उपयोगकर्ता नाम प्रदर्शित नहीं करता है या क्या मुझे इसे किसी भी तरह से देखने के लिए पास करना है?
जोड़ा लेखक masterlampe, स्रोत
यह किस तरह से काम नहीं करता है? जब आप लॉगिन आवश्यक पृष्ठ पर जाने का प्रयास करते हैं तो क्या होता है?
जोड़ा लेखक murgatroid99, स्रोत
त्रुटि क्या है?
जोड़ा लेखक sumit, स्रोत

2 उत्तर

उपयोगकर्ता लॉग इन है, लेकिन आप इसे टेम्पलेट में नहीं भेज रहे हैं, इसलिए यह उपयोगकर्ता के विवरण नहीं दिखाएगा। सुनिश्चित करें कि आप अपने टेम्पलेट्स को RequestContext के साथ प्रस्तुत करें, या render_to_response के बजाय नए प्रस्तुत करें शॉर्टकट का उपयोग करें।

0
जोड़ा

आपको यह सुनिश्चित करना होगा कि आप अपने settings.py में निम्न मध्यवर्ती शामिल करें:

  • सत्र मिडलवेयर
  • AuthenticationMiddleware

यह सुनिश्चित करने के लिए कि user नामक एक संदर्भ चर आपके टेम्पलेट्स पर उपलब्ध है, आपको यह सुनिश्चित करना होगा कि django.contrib.auth.context_processors.auth संदर्भ प्रोसेसर आपके <�कोड में है > settings.py ।

अधिक जानकारी Djano auth topic </एक>।

0
जोड़ा
@Tom का उल्लेख करने के कारणों के लिए +1, और यह जोड़ने के लिए कि आपको प्रस्तुत करना सुनिश्चित करने के लिए शॉर्टकट RequestContext शामिल है।
जोड़ा लेखक Burhan Khalid, स्रोत
इस उत्तर को सेकेंड करना: यदि आप ऊपर दिए गए लिंक में सूचीबद्ध रूपों और विधियों का उपयोग नहीं कर रहे हैं, तो आप चीजों को कठिन बनाने की आवश्यकता रखते हैं।
जोड़ा लेखक Tom, स्रोत