2011-07-28 22 views
11

Ok więcej na formularzach. W końcu otrzymałem formularz do sprawdzenia poprawności, ogłoszenia i przekierowania na stronę, której potrzebuje. Teraz mój problem jest, kiedy powrócić do strony z formularzem otrzymuję ten błąd:Złapano atrybut AttributeError podczas renderowania: obiekt 'WSGIRequest' nie ma atrybutu 'get'

Caught AttributeError podczas renderowania: obiekt „WSGIRequest” nie ma atrybutu „get”

Wydaje się, że jedynym sposobem, aby przywrócić go do pracy jest usuwanie forms.py zastępujących to, co wcześniej nie działało. Dodaj to, co działa i mogę je uruchomić RAZ. Jakieś pomysły, które mogą powodować ten problem?

formach:

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

odsłony:

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

MODELE:

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) 

Znów każda pomoc jest bardzo pomocne. Dziękuję Ci!!

Odpowiedz

20

Nie trzeba przekazywać żądania podczas tworzenia obiektu LeadSubmissionForm, gdy request.method == 'GET'.

Aby zapisać kilka wierszy kodu, można również zrobić:

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

nadzieję, że pomoże Ci się.

+0

To było to! Dziękuję bardzo Brandon! – tjoenz

Powiązane problemy