2011-07-28 75 views
11

確定窗體上有更多。我終於得到了我的表單來驗證,發佈和重定向到它需要的頁面。現在,我的問題是,當我回到與表單的頁面我得到這個錯誤:在呈現時捕獲AttributeError:'WSGIRequest'對象沒有屬性'get'

陷入AttributeError的同時渲染:「WSGIRequest」對象有沒有屬性「得到」

似乎恢復它的工作的唯一辦法就是刪除forms.py,替換以前不工作的東西。添加什麼工作,我可以讓它工作一次。任何想法可能導致這個問題?

形式:

class LeadSubmissionForm(forms.ModelForm): 
    """ 
    A simple default form for messaging. 
    """ 
    class Meta: 
     model = Lead 
     fields = ( 
      'parent_or_student', 'attending_school', 'how_much', 'year_of_study', 'zip_code', 'email_address', 'graduate_year', 'graduate_month', 'email_loan_results' 
     ) 

瀏覽次數:

@render_to("lender/main_views/home.html") 
def home(request): 
    if request.method == 'POST': 
     form = LeadSubmissionForm(request.POST) 
     if form.is_valid(): 
      form.save() 
      return HttpResponseRedirect(reverse("search_results")) 
    else: 
     form = LeadSubmissionForm(request) 

    testimonials = Testimonial.objects.filter(published=True)[:3] 
    return {'lead_submission_form':form, 
     'testimonials': testimonials,} 

機型:

class Lead(TitleAndSlugModel): 
    """ 
    A lead submitted through the site (i.e. someone that has at-least submitted the search form 
    """ 

    PARENT_OR_STUDENT = get_namedtuple_choices('PARENT_OR_STUDENT', (
     (0, 'PARENT', 'Parent'), 
     (1, 'STUDENT', 'Student'), 
    )) 
    YEARS_OF_STUDY = get_namedtuple_choices('YEARS_OF_STUDY', (
     (0, 'ONE', '1'), 
     (1, 'TWO', '2'), 
     (2, 'THREE', '3'), 
     (3, 'FOUR', '4'), 
    )) 

    parent_or_student = models.PositiveIntegerField(choices=PARENT_OR_STUDENT.get_choices(), default=0) 
    attending_school = models.ForeignKey(School) 
    how_much = models.DecimalField(max_digits=10, decimal_places=2) 
    year_of_study = models.PositiveIntegerField(choices=YEARS_OF_STUDY.get_choices(), default=0) 
    zip_code = models.CharField(max_length=8) 
    email_address = models.EmailField(max_length=255) 
    graduate_year = models.IntegerField() 
    graduate_month = models.IntegerField() 
    email_loan_results = models.BooleanField(default=False) 

    def __unicode__(self): 
     return "%s - %s" % (self.email_address, self.attending_school) 

再次任何幫助是很大的幫助。謝謝!!

回答

20

當request.method =='GET'時,實例化LeadSubmissionForm時不需要傳入請求。

要保存的幾行代碼,你也可以這樣做:

@render_to("lender/main_views/home.html") 
def home(request): 
    form = LeadSubmissionForm(request.POST or None) 
    if request.method == 'POST': 
     if form.is_valid(): 
      form.save() 
      return HttpResponseRedirect(reverse("search_results")) 
    testimonials = Testimonial.objects.filter(published=True)[:3] 
    return {'lead_submission_form':form, 'testimonials': testimonials} 

希望有所幫助你。

+0

就是這樣!非常感謝Brandon! – tjoenz

相關問題