2009-01-03 15 views
18

पिछले कुछ दिनों में हम another question पर रीस्टफुल तरीके से यादृच्छिकता का प्रबंधन करने के लिए सबसे अच्छे पर चर्चा कर रहे थे; आज मैं Django में कुछ विचारों के साथ थोड़ा सा खेलने के लिए गया था, यह पता लगाने के लिए कि 303 प्रतिक्रिया (और न ही 300 एक, बीटीडब्लू) लौटने का कोई आसान मानक तरीका नहीं है, यानी, ऐसा लगता है कि एचटीपीआरस्पॉन्स के अंदर अन्य नहीं है django.HTTP या किसी अन्य जगह पर।Django में 303 एचटीपी प्रतिक्रिया कैसे उत्पन्न करें?

क्या आप इसे प्राप्त करने के लिए कोई साधन जानते हैं?

उत्तर

25

तुम बस HttpResponse रद्द कर सकते थे, जैसे अन्य प्रतिक्रियाएँ कार्य करें: आप कुछ फिर से प्रयोग करने योग्य की जरूरत है

response = HttpResponse(content="", status=303) 
response["Location"] = "http://example.com/redirect/here/" 

:

class HttpResponseSeeOther(HttpResponseRedirect): 
    status_code = 303 

return HttpResponseSeeOther('/other-url/') 
+5

आप इसे पैच के साथ टिकट के रूप में भी दर्ज कर सकते हैं। –

20

सामान्य HttpResponse वस्तु आप किसी भी स्थिति कोड आप चाहते हैं निर्दिष्ट कर सकते हैं तो गेराल्ड का जवाब निश्चित रूप से मान्य है; बस अपना खुद का HttpResponseSeeOther क्लास बनाएं। Django केवल कुछ विशिष्ट स्थिति कोडों के लिए इन विशिष्ट वर्गों को प्रदान करता है।

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