2012-05-23 8 views
7

क्या मैं लॉगिन पेज का उपयोग कर सकता हूं: /admin गैर-कर्मचारी उपयोगकर्ताओं के लॉगिन के लिए? मैं अपने Django सेटिंग्स फ़ाइल में निम्न सेटिंग्स का उपयोग कर रहा हूँ:क्या हम अपने स्वयं के उपयोग के लिए django में लॉगिन व्यवस्थापक का उपयोग कर सकते हैं?

LOGIN_URL = '/admin/' 
LOGIN_REDIRECT_URL = '/' 

जब मैं लॉगिन, यह मेरे रूट फ़ोल्डर पर रीडायरेक्ट नहीं करता। क्या मैं इसे सही तरीके से कर रहा हूं?

नोट: मैं अपने विचार पर सजावटी @login_required का उपयोग कर रहा हूं।

संपादित

यह इस यूआरएल के साथ व्यवस्थापक साइट में मुझे लॉग:, http://127.0.0.1:8000/admin/?next=/

उत्तर

10

गैर स्टाफ के सदस्यों को व्यवस्थापक दृश्य के माध्यम से प्रवेश नहीं कर सकते तो आप नहीं कर सकते।

वहाँ एक Django का मानना ​​है कि वास्तव में करता है कि तुम क्या जरूरत है, फिर भी है: django.contrib.auth.views.login

आप आसानी से अपने urlconf में जोड़ सकते हैं:

from django.contrib.auth.views import login 

urlpatterns = ('', 
    #snip 
    url(r'^login/$', login) 
) 

प्रलेखन की जाँच करें आप अपने व्यवहार को कैसे अनुकूलित कर सकते हैं देखने के लिए : https://docs.djangoproject.com/en/dev/topics/auth/#limiting-access-to-logged-in-users

आपको देखने के लिए केवल एक टेम्पलेट को परिभाषित करने की आवश्यकता होगी, डिफ़ॉल्ट रूप से, यह registration/login.html पर स्थित होना चाहिए, लेकिन यह अतिरंजित हो सकता है।

7

Django 1.6 के साथ मैं निम्नलिखित सेटअप के साथ django के अपने व्यवस्थापक लॉगिन टेम्पलेट का उपयोग करने में सक्षम था। फिर जब मैं खोलने '/' यह मेरे लॉगिन स्क्रीन पर रीडायरेक्ट करेगा, और उस में प्रवेश करने के बाद मुझे '/' को

settings.py

INSTALLED_APPS = (
    'django.contrib.admin', 
    'django.contrib.auth', 
    'django.contrib.contenttypes', 
    'django.contrib.sessions', 
    'django.contrib.messages', 
    'django.contrib.staticfiles', 
    'core', 
    'south', 
) 

LOGIN_URL = '/login' 

urls.py वापस भेजता है

from django.conf.urls import patterns, include, url 
from django.contrib import admin 
from django.contrib.auth.views import login 

admin.autodiscover() 
urlpatterns = patterns(
    '', 
    url(r'^', include('core.urls')), 
    url(r'^admin/', include(admin.site.urls)), 
    url(r'^login/$', login, {'template_name': 'admin/login.html'}) 
    # I didn't create this 'admin/login.html' template 
    # Django will use the one from the admin application ;-) 
) 

कोर/urls.py

from django.conf.urls import patterns, url 
urlpatterns = patterns(
    'core.views.web_views', 
    url(r'^$', 'home'), 
) 

कोर/विचारों/web_views.py

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

__author__ = 'tony' 

from django.contrib.auth.decorators import login_required 

@login_required 
def home(request): 
    return render_to_response('home.html', {}, context_instance = RequestContext(request)) 
संबंधित मुद्दे