मैं stackoverflow करने के लिए और django के लिए नया हूँ में auth.views.login उल्टा करने के लिए प्रयास करें ...Django नौसिखिया: login_required() डेकोरेटर
संक्षिप्त प्रश्न ("लंबे समय से सवाल" के लिए नीचे देखें), निम्नलिखित कोड myapps में/views.py विफल रहा:
from django.core.urlresolvers import reverse
...
@login_required(login_url=reverse('django.contrib.auth.views.login'))
def my_view(request):
pass
त्रुटि है:
ViewDoesNotExist at/
tried my-view2 in module myproject.myapps.views. Error was: 'module' object has no attribute 'my-view2'
'मेरे-view2' मेरे-व्यू के बाद myapps/views.py में परिभाषित किया गया है (और MyProject में संदर्भित है/urls.py)
मुझे लगता है कि यहां चिकन और अंडे की तरह कुछ है लेकिन मैं यह नहीं समझ सकता कि मैं कहां गलत हूं।
from django.core.urlresolvers import reverse
...
LOGIN_URL=reverse('django.contrib.auth.views.login')
अब लंबे सवाल (किस संदर्भ, क्यों मैं ऐसा चाहते हैं):
साथ Django 1.3.1 मैं काम कर रहा मुझे लगता है कि एक ही त्रुटि के साथ की तरह settings.py में LOGIN_URL सेट करने का प्रयास
@login_required
def my_view(request)
pass
यह डेकोरेटर डिफ़ॉल्ट (मेरे लिए यह काम करता है और वह ठीक)/लेखा/लॉगिन करने के लिए पुन: निर्देशित: निम्न दृश्य, auth.decorator के साथ सुरक्षित हो गया।
developpement सर्वर का उपयोग कर पूरे यूआरएल स्थानीय होस्ट के सापेक्ष हैं:/
उत्पादन सर्वर (WSGI का प्रयोग करके), पूरे यूआरएल मेरी-सर्वर के सापेक्ष हैं में:/path1/ यह अपाचे विन्यास के कारण है कि कुछ ऐसा कहें: WSGIScriptAlias / path1 /var/www/path/to/script.wsgi
और यह मेरे लिए ठीक है।
myproject/urls.py में परिभाषित सभी यूआरएल स्वचालित रूप से इस नए पथ से संबंधित हैं, इसलिए django के लिए धन्यवाद, मेरी सभी साइट इस नए "एचटीएमएल रूट" पर काम कर रही है।
लेकिन मेरी संरक्षित दृश्य अभी भी मेरी-सर्वर पर रीडायरेक्ट:/लेखा/लॉगिन/बजाय मेरी सर्वर ओ:/path1/लेखा/के लिए लॉग इन
अब तक मैं इसे का उपयोग कर काम करने के settings.py
LOGIN_URL=/path1/accounts/login/
या LOGIN_URL पैरामीटर का उपयोग करने की "login_required" डेकोरेटर:
@login_required(login_url="/path1/accounts/login/")
लेकिन मैं चाहती हूं "path1" को विन्यस्त बिना कि इस लॉगिन दृश्य पूरी साइट पथ के सापेक्ष दोनों अपाचे में और django/settings.py
मुझे नहीं लगता कि सेटिंग्स.py में रिवर्स का उपयोग करना और न ही इसे देखने वाले सजावट में उपयोग करना सही है। लेकिन अब तक मैं यह कैसे संभाल करने के लिए नहीं पता ...
क्या आप अपना urls.py पोस्ट कर सकते हैं? –
क्या आपके पास वास्तव में 'my-view2' के रूप में परिभाषित दृश्य है? यह वैध पायथन नाम नहीं है, '' एक ऑपरेटर होने के नाते। यदि आप करते हैं, तो आपको इसे 'my_view2' पर पुनर्नामित करना चाहिए। – brutasse