Pickels
Pickels

Reputation: 34632

Get form data inside form class.

Is there a better way to get data inside a form class?

from django import forms

class ContactForm(forms.Form):
    subject = forms.CharField(required=True)
    message = forms.CharField(required=True, widget=forms.Textarea)

    def send(self):
        self.data['data']['subject'] 
        self.data['data']['message'] 

Upvotes: 3

Views: 1631

Answers (1)

fijter
fijter

Reputation: 18057

You mean you need the values of the filled in form?

In your view, check if the form is valid using form.is_valid(); this populates self.cleaned_data containing your cleaned values. Using data isn't all that safe without validating it first.

so:

views.py:

if request.method == 'post':
    form = ContactForm(request.POST)
    if form.is_valid():
       form.send()

forms.py:

from django import forms

class ContactForm(forms.Form):
    subject = forms.CharField(required=True)
    message = forms.CharField(required=True, widget=forms.Textarea)

    def send(self):
        subject = self.cleaned_data['subject']
        ...

Upvotes: 6

Related Questions