큰 장고 폼에서 4-5 개의 필드를 가져 와서 감사 페이지에 표시하려고합니다.Django 폼 입력을 감사 페이지에 표시
양식 입력을 기반으로하는 매개 변수가있는 쿼리 문자열을 사용하여 iFrame을 구축 할 것이기 때문에 좋은 수준의 제어로 값을 표시하고 싶습니다.
현재 내가 가진 :forms.py ----
-*- encoding: utf-8 -*-
from django import forms
from django.forms import extras, ModelForm
from django.utils.safestring import mark_safe
from siteapp.compare.models import Compare
HOWMUCH_CHOICES = (
('', '--------------------------'),
('20000', '20,000'),
('30000', '30,000'),
...
('2000000', '2,000,000'),
)
HOWLONG_CHOICES = (
('', '--------------------------'),
('1', '1 Year'),
...
('39', '39 Years'),
('40', '40 Years'),
)
... 등.
class ComparisonForm(forms.Form):
js = mark_safe(u"document.compareForm.how_much.selectedindex = 4;")
how_much = forms.ChoiceField(choices=HOWMUCH_CHOICES,
widget=forms.Select(attrs={'onMouseOver':'setDefaults()','class':'required validate-selection','title':'Select value of cover required','onLoad': js}))
how_long = forms.ChoiceField(choices=HOWLONG_CHOICES,
widget=forms.Select(attrs={'class':'required validate-selection','title':'Select length of cover required'}))
who_for = forms.ChoiceField(choices=WHOFOR_CHOICES,
widget=forms.Select(attrs={'class':'required validate-selection','title':'Select whether you require cover for a partner also'}))
...
class Meta:
model = Compare
models.py -----
class Compare(models.Model):
how_much = models.CharField(max_length=28,choices=HOWMUCH_CHOICES#,default='100000'
)
how_long = models.CharField(max_length=28,choices=HOWLONG_CHOICES)
who_for = models.CharField(max_length=28,choices=WHOFOR_CHOICES)
...
partner_date_of_birth = models.DateField(blank=True)
def __unicode__(self):
return self.name
views.py ----
def qc_comparison(request):
return render_to_response('compare/compare.html', locals(), context_instance=RequestContext(request))
urls.py ----
(r'^compare/thanks/$', 'django.views.generic.simple.direct_to_template', {'template': 'compare/thanks.html'}),
설명서에서이 작업을 수행하는 가장 좋은 방법을 찾으려고 노력하고 있지만 통과 방법이 명확하지 않습니다. 변수를 감사 페이지로 바꿉니다.
응답을 위해 Thansk - locals()를 사용하고 있습니다. beacuse 나는 또한 사용자 정의 컨텍스트 프로세서 (하위 도메인을 식별하고 장고에서 해당 문자열을 사용할 수있게 함)를 가지고 있습니다. 제안 된 변경을 시도하고 어떻게 진행되는지 살펴 봅니다. – Chris
그건 대우를 받고 있습니다. 컨텍스트 프로세서를 통해 양식 데이터도 전달합니다. 참조 용 코드는 다음과 같습니다.
def compare_form(request): \t from siteapp.compare.forms import ComparisonForm \t if request.method == 'POST': \t \t form = ComparisonForm(request.POST) \t \t if form.is_valid(): \t \t \t cd = form.cleaned_data \t \t \t return {'cd': cd} \t else: \t \t form = ComparisonForm() \t return {'form': form}
그런 다음 템플릿에서 컨텍스트를 호출합니다. – Chris