तो यह बहुत कठिन नहीं किया जा सकता लेकिन मैं इसे समझ नहीं कर सकते हैं ...Django रूप रीडायरेक्ट का उपयोग कर HttpResponseRedirect
मैं Django (/file_upload/ में स्थित) में अपने प्रपत्र चाहते हैं एक फ़ाइल अपलोड करने , इसे डेटाबेस में जोड़ें, और उसके बाद एक नए पृष्ठ पर रीडायरेक्ट करें जहां पैरामीटर उस क्षेत्र की आईडी है जिसे मैंने डेटाबेस में जोड़ा है (/फ़ाइल/163/ पर स्थित है)।
मैं इतना है कि /फ़ाइल/163/ काम करता है ठीक है अगर तुम वहाँ सीधे नेविगेट urls.py सेट कर लेते हैं, लेकिन मैं कैसे /फ़ाइल/अपलोड/ से वहाँ पहुँचने के लिए पता नहीं है।
मेरे कोड इस तरह है:
def add(request):
if request.method == 'POST': # If the form has been submitted...
form = UploadFileForm(request.POST, request.FILES)
if form.is_valid():
# do stuff & add to database
my_file = FileField.objects.create()
return HttpResponseRedirect(reverse('/file/', args=[my_file.id]))
मैं this solution उपयोग नहीं कर सकते क्योंकि मैं नहीं जानता कि क्या क्षेत्र आईडी जब तक मैं views.py में प्रपत्र संभाला है होने जा रहा है, इसलिए figures.py में रीडायरेक्ट होना है। मुझे लगता है।
कोई विचार? में
return HttpResponseRedirect(reverse('/file/', args=[my_file.id]))
reverse
एक दृश्य या नाम या एक दृष्टिकोण लेता reverse
गलत करने के लिए
def add(request):
if request.method == 'POST':
form = UploadFileForm(request.POST, request.FILES)
if form.is_valid():
# do stuff & add to database
my_file = FileField.objects.create()
# use my_file.pk or whatever attribute of FileField your id is based on
return HttpResponseRedirect('/files/%i/' % my_file.pk)
else:
form = UploadFileForm()
return render_to_response('upload_file.html', {
'form': form,
})
सही। धन्यवाद – AP257
@ रिचर्ड - नोट निक क्रेग-वुड की टिप्पणी - आप अपने विचारों में हार्ड-कोडिंग यूआरएल की तुलना में 'रिवर्स' का उपयोग करके बेहतर हो सकते हैं। –