2012-10-06 20 views
46

संभव डुप्लिकेट:
Django: Redirect to previous page after loginDjango में रीडायरेक्ट/उसी (पिछले) पृष्ठ पर वापस लौटें?

क्या विकल्प हैं जब आप Django में एक ही पृष्ठ पर उपयोगकर्ता लौटना चाहते हैं और प्रत्येक के पेशेवरों/विपक्ष क्या हैं?

तरीके मुझे पता है:

  • HTTP_REFERER
  • प्राप्त पैरामीटर पिछले URL युक्त
  • सत्र डेटा पिछले URL

क्या कोई अन्य कर रहे हैं स्टोर करने के लिए?

+8

लिंक "प्रवेश के बाद" कहते हैं। क्या मैंने "लॉगिन के बाद" पूछा था? यह प्रश्न इस विषय का असली अवलोकन हो सकता है। यह -1 के लायक नहीं है, यह +1 के लायक है। इसके विपरीत जीज़ –

+2

तर्क तर्क या पोस्ट से अलग नहीं है, यह सिर्फ एक पुनर्निर्देशन प्रश्न है, जब तक कि आप कुछ तर्क परिभाषित नहीं करते हैं, आपका प्रश्न व्यापक है और उचित शोध या परीक्षण के बिना कोई प्रो और कॉन शामिल नहीं है। –

+3

यह बहुत अलग है। Django लॉगिन और टिप्पणियां रीडायरेक्ट में बनाया गया है। मेरा प्रश्न अन्य मामलों के लिए है;) –

उत्तर

83

तरीका में से एक के रूप में नीचे की तरह HTTP_REFERER हैडर उपयोग कर रहा है:

from django.http import HttpResponseRedirect 

def someview(request): 
    ... 
    return HttpResponseRedirect(request.META.get('HTTP_REFERER')) 

इस के विपक्ष के बारे में सुनिश्चित नहीं है!

+7

मुझे लगता है कि बड़ा कॉन तथ्य यह होगा कि कई उपयोगकर्ता/ब्राउज़र में http_referer बंद है। –

+3

क्या आपको पता है कि हेडर बंद करना कितना मुश्किल है? अधिकांश उपयोगकर्ताओं को यह नहीं पता कि यह क्या है, इसे अकेले कैसे बंद करें। फ़ायरफ़ॉक्स और क्रोम में आपको वरीयताओं को _मान रूप से संपादित करना होगा (फिर से, बहुत से लोग नहीं जानते कि यह कैसे करें); आईई में आप इसे अक्षम नहीं कर सकते हैं (यह सुरक्षित साइटों के लिए स्वचालित रूप से अक्षम है)। –

+35

मुझे लगता है कि अनुरोध के बाद साइट के मुख्य पृष्ठ पर रीडायरेक्ट करना बेहतर होगा। एमएमटीए सेट नहीं है: HttpResponseRedirect (request.META.get ('HTTP_REFERER', '/')) – nickzam

4

जबकि सवाल और उत्तर पुराना है, मुझे लगता है कि इसमें कुछ विकल्प की कमी है। मुझे विधियों के साथ कोई विपक्ष नहीं मिला है, मुझे यह जानकर खुशी होगी कि क्या कोई है?