How to create a form using Django Forms
×


How to create a form using Django Forms

1196

Introduction to Creating a Form with Django Forms

Django Forms simplifies the process of creating user input interfaces. By defining form fields in Python, it automatically handles rendering HTML, validating input, and processing submissions. This tutorial walks you through building a simple form from start to finish.

Prerequisites

Make sure Django is installed and you have a basic project & app setup. You should also be comfortable creating views, templates, and running the development server.

Step 1: Define the Form

Create a new file forms.py in your app and define a form class:

from django import forms

class ContactForm(forms.Form):
    name = forms.CharField(max_length=100)
    email = forms.EmailField()
    message = forms.CharField(widget=forms.Textarea)
This form includes three fields: name, email, and message with a textarea widget.

Step 2: Handle the Form in a View

In views.py, import the form and manage GET/POST logic:

from django.shortcuts import render
from .forms import ContactForm

def contact_view(request):
    if request.method == "POST":
        form = ContactForm(request.POST)
        if form.is_valid():
            # Process submitted data
            name = form.cleaned_data["name"]
            email = form.cleaned_data["email"]
            message = form.cleaned_data["message"]
            # e.g., send an email or save to the database
            success = True
        else:
            success = False
    else:
        form = ContactForm()
        success = None

    return render(request, "contact.html", {"form": form, "success": success})

Step 3: Render the Form in a Template

Create contact.html in your templates directory:

<form method="post" novalidate>
  {% csrf_token %}
  {{ form.as_p }}
  <button type="submit">Submit</button>
</form>

{% if success == True %}
  <p>Your message has been sent successfully!</p>
{% elif success == False %}
  <p>There were errors with your submission. Please try again.</p>
{% endif %}
The template displays the form and includes feedback messages after submission.

Step 4: Wire Up the URL

Add the view to your app’s urls.py:

from django.urls import path
from .views import contact_view

urlpatterns = [
    path("contact/", contact_view, name="contact"),
]
This ensures the form is accessible at /contact/.

Step 5: Style the Form (Optional)

You can customize the form's appearance using CSS frameworks like Bootstrap. Add classes to widgets in forms.py or override the HTML in the template for tailored styling.

Conclusion

Creating a form using Django Forms involves defining form fields in Python, rendering them in templates, validating user input, and processing data in views. With Django’s powerful form framework, building secure, user-friendly forms becomes quick and maintainable.



If you’re passionate about building a successful blogging website, check out this helpful guide at Coding Tag – How to Start a Successful Blog. It offers practical steps and expert tips to kickstart your blogging journey!

For dedicated UPSC exam preparation, we highly recommend visiting www.iasmania.com. It offers well-structured resources, current affairs, and subject-wise notes tailored specifically for aspirants. Start your journey today!


Best WordPress Hosting


Share:


Discount Coupons

Unlimited Video Generation

Best Platform to generate videos

Search and buy from Namecheap

Secure Domain for a Minimum Price



Leave a Reply


Comments
    Waiting for your comments

Coding Tag WhatsApp Chat