2014-12-05 7 views
8

प्राप्त करना मेरे पास एक पोस्ट मॉडल है जिसके लिए डेटाबेस में जोड़े जाने से पहले एक निश्चित श्रेणी की आवश्यकता होती है, और मैं श्रेणी को स्वचालित रूप से जेनरेट करना चाहता हूं। ऐडपोस्ट बटन पर क्लिक करने से आपको एक अलग पृष्ठ पर ले जाता है और इसलिए श्रेणी पिछले पृष्ठ यूआरएल का एक हिस्सा ले कर निर्धारित की जाएगी।Django: पिछला यूआरएल

क्या पिछले पृष्ठ url को स्ट्रिंग के रूप में प्राप्त करने का कोई तरीका है?

धन्यवाद

संपादित करें: मैं अपने AddPost बटन यहां जोड़ लिया है।

<aside class="addPost"> 
     <article> 
      <form action="/Forum/addPost"> 
        <input type="submit" name="submit" value="Add Post"/> 
      </form> 
     </article> 
</aside> 

उत्तर

7

आप request.META.HTTP_REFERER

अधिक जानकारी यहाँ का उपयोग करके संदर्भ देने वाला URL प्राप्त कर सकते हैं: https://docs.djangoproject.com/en/dev/ref/request-response/#django.http.HttpRequest.META

+0

क्षमा याचना, मैं काफी है कि कैसे काम करता है का पालन नहीं करते। क्या आप समझाएँगे? अगर मैं यूआरएल को पुनः प्राप्त करने में सक्षम था, तो क्या यह मुझे टाइप स्ट्रिंग के रूप में इलाज करने की अनुमति देगा? – tryingtolearn

+3

request.META.HTTP_REFERER का उपयोग करने का प्रयास करते समय मुझे एक त्रुटि मिलती है कि dict ऑब्जेक्ट में कोई विशेषता HTTP_REFERER नहीं है। – tryingtolearn

1

एक और अधिक विश्वसनीय विधि स्पष्ट रूप से पोस्ट जोड़ें बटन का URL श्रेणी में पारित करने के लिए किया जाएगा।

+0

मुझे खेद है, क्या आप विस्तारित कर सकते हैं? मैं इसके लिए एक निश्चित नौसिखिया हूँ। – tryingtolearn

10

आप self.request.META['HTTP_REFERER'] का उपयोग करके ऐसा कर सकते हैं, लेकिन यह तब मौजूद होगा जब आपका टैब केवल पिछला पृष्ठ आपकी वेबसाइट से था, अन्यथा में HTTP_REFERER नहीं होगा। तो सावधान रहें और सुनिश्चित करें कि आप इसके बजाय .get() नोटेशन का उपयोग कर रहे हैं।

# Returns None if user came from another website 
referer = self.request.META.get('HTTP_REFERER') 
+0

नाम 'self' परिभाषित नहीं किया गया है? –

3

मैं @tryingtolearn टिप्पणी उत्तर नहीं दे सकता है, लेकिन भविष्य में लोगों के लिए है, तो आप उपयोग कर सकते हैं request.META['HTTP_REFERER']

संबंधित मुद्दे