2013-02-21 17 views
8

मेरे पास एक ऐसा दृश्य है जो कुछ कार्य करता है और एक और दृश्य पर लौटता है जो hello.html टेम्पलेट प्रस्तुत करता है।Django में HttpResponseRedirect से एक संदेश कैसे पास करें?

def 1stview(request): 
    #Do this 
    #Do that 
    return HttpResponseRedirect('/success/') 

def success(request): 
    return render_to_response('overview.html', {'overview_files': b, 'total_files':total_files, 'total_size':total_size, 'username': username}, context_instance=RequestContext(request)) 

सफलतापूर्वक 1 दृश्य पूरा करने के बाद मैं overview.html में 'सफल' संदेश देना चाहते हैं। success दृश्य पर बहुत सारे रीडायरेक्ट हैं। मैं केवल 1 दृश्य के माध्यम से संदेश भेजना चाहता हूं। मैं उसे कैसे कर सकता हूँ?

+1

आप पुनर्निर्देशित करने के लिए की तरह तो 'HttpResponseRedirect रिटर्न प्राप्त पैरामीटर जोड़ सकते हैं ('/ सफलता /? स्थिति = सफल ') '। और सफलता समारोह में, आप वह पैरामीटर प्राप्त कर सकते हैं: 'request.GET.get ('स्थिति', कोई नहीं)' – stalk

उत्तर

10

पृष्ठ अनुरोधों के बीच संदेश भेजने के लिए messages framework का उपयोग करें।

1
from django.contrib import messages 
messages.success(request, _('Thank you')) 
return redirect('/whatever/') 
0

सावधान जब i18n URL का उपयोग कर! यदि आप /whatever/ जैसे लिंक का उपयोग करते हैं लेकिन अंतर्राष्ट्रीयकरण का उपयोग करते हैं, तो यह /en/whatever/ पर रीडायरेक्ट करेगा, इस प्रकार अनुरोध में संदेश खो देगा। आप अंतर्राष्ट्रीयकरण का उपयोग करते हैं, हमेशा यूआरएल के लिए भाषा पारित:

from django.contrib import messages 
from django.utils.translation import get_language 

messages.success(request, _('Thank you')) 
return redirect('/%s/whatever/' % get_language()) 

लागत मुझे कुछ घंटों के लिए इस को समझने के लिए ...

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

  • कोई संबंधित समस्या नहीं^_^