有沒有一種方法可以將表單提交中的數據傳遞給「謝謝」頁面。我想這樣做的原因是因爲我在網站上有一個表單,用戶將在其中選擇多個包含不同PDF的字段。從我的視圖中傳遞表單數據以表示感謝頁面
所以一旦用戶提交了表單,這個想法就是將他們重定向到一個thankyou頁面,他們可以在這裏查看他們在表單上選擇的pdf /文件列表。
我希望這是足夠的信息繼續下去。這是我的觀點/模型。
def document_request(request, *args):
# template = kwargs['name'] + ".html"
if request.method == 'POST':
form = forms.ReportEnquiryForm(request.POST)
print(request.POST)
if form.is_valid():
docrequest = form.save()
return HttpResponseRedirect(reverse('thank_you', kwargs={'id': docrequest.id}))
else:
form = forms.ReportEnquiryForm()
return render_to_response('test.html',{'form':form})
def thank_you(request):
docrequest = DocumentRequest.objects.get(pk=id)
return render_to_response('thankyou.html',
{'docrequest' : docrequest },
context_instance=RequestContext(request))
我最初的想法是將數據傳遞給名爲thank_you的新視圖。但這不是可能的。
class DocumentUpload(models.Model):
name = models.CharField(max_length="200")
document_upload = models.FileField(upload_to="uploads/documents")
def __unicode__(self):
return "%s" % self.name
class DocumentRequest(models.Model):
name = models.CharField(max_length="200")
company = models.CharField(max_length="200")
job_title = models.CharField(max_length="200")
email = models.EmailField(max_length="200")
report = models.ManyToManyField(DocumentUpload)
def __unicode__(self):
return "%s" % self.name
form.py
class ReportEnquiryForm(forms.ModelForm):
class Meta:
model = models.DocumentRequest
fields = ('name', 'company', 'job_title', 'email', 'report')
如果您不再需要的信息,請諮詢:)
嗨丹感謝您的回覆。我現在聽起來像是一個真正的n00b。有沒有辦法給我一個例子?這對我來說都是新的,我試圖理解這一切。 – JDavies
注意:任何人都可以訪問謝謝頁面。如果您不希望用戶返回到感謝頁面,則可以在用戶訪問該頁面後使用會話並刪除會話變量。那麼你將不需要做這些改變。 – moenad
感謝您的回覆,我收到此錯誤。 '查看contact_enquiries.views.document_request沒有返回HttpResponse對象。'這是因爲我需要返回一個空表單嗎?如果是這樣,我該如何去做呢? – JDavies