フォーム送信から「ありがとう」ページにデータを渡す方法はありますか。私がこれをやりたい理由は、Web サイトにフォームがあり、ユーザーがすべて異なる PDF を含む複数のフィールドを選択するためです。
そのため、ユーザーがフォームを送信したら、お礼のページにリダイレクトし、フォームで選択した 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
フォーム.py
class ReportEnquiryForm(forms.ModelForm):
class Meta:
model = models.DocumentRequest
fields = ('name', 'company', 'job_title', 'email', 'report')
さらに情報が必要な場合は、お問い合わせください:)