2011-07-28 31 views
11

Formlarda daha fazlası var. Son olarak, formum gerekenleri doğrulamak, postalamak ve yönlendirmek için formumu aldım.Caught AttributeError görüntülerken yakalandı: 'WSGIRequest' nesnesinin 'get' özelliği yok

yakalandı AttributeError render ederken: Ben bu hatayı alıyorum formu ile sayfasına döndüklerinde Şimdi benim konudur 'WSGIRequest' nesne hiçbir özelliği çalışmaya geri yüklemek için tek yol görünüyor

'get' vardır Daha önce çalışmayanı değiştiren forms.py dosyasını silmektir. Neyin işe yaradığını ekleyin ve ONCE çalışmasını sağlayabilirim. Herhangi bir fikir bu soruna neden olabilir?

ŞEKİLLERİ:

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' 
     ) 

GÖRÜŞLERİ:

@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,} 

MODELLER:

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) 

Yine herhangi bir yardım çok yardımcı olduğunu. Teşekkür ederim!!

cevap

20

Request.method == 'GET' olduğunda LeadSubmissionForm örneğini başlatırken isteğinizi iletmeniz gerekmez.

birkaç kod satırlarını kaydetmek için ayrıca yapabilirsiniz: size yardımcı oluyor

@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} 

Umut.

+0

Öyleydi! Çok teşekkür ederim Brandon! – tjoenz

İlgili konular