Open In App

FormView - Class Based Views Django

Last Updated : 28 Apr, 2025
Suggest changes
Share
Like Article
Like
Report

FormView refers to a view (logic) to display and verify a Django Form. For example, a form to register users at Geeksforgeeks. Class-based views provide an alternative way to implement views as Python objects instead of functions. They do not replace function-based views, but have certain differences and advantages when compared to function-based views: 

  • The organization of code related to specific HTTP methods (GET, POST, etc.) can be addressed by separate methods instead of conditional branching.
  • Object-oriented techniques such as mixins (multiple inheritances) can be used to factor code into reusable components.

Class-based views are simpler and more efficient to manage than function-based views. A function-based view with tons of lines of code can be converted into a class-based view with few lines only. This is where Object Oriented Programming comes into impact. 

Django FormView - Class-Based Views

Illustration of How to create and use FormView using an Example. Consider a project named Core having an app named books. 
 

Refer to the following articles to check how to create a project and an app in Django. 
 

Folder Structure

 

Stepwise Implementation to create Class-Based Views

Step 1: Create a basic Project

Create a project by following the command

django-admin startproject core
  • A New Folder with the name project name will be created.

Step 2: Creating an App in Django

To create a basic app in your Django project you need to go to the directory containing manage.py and from there enter the command:

python manage.py startapp books

Step 3: Go to core/URLs and set the path for our app.

 

Step 4: Go to core/setting and register our app name "books".

 

Step 5: Paste this to your books/admin.py

from django.contrib import admin from . import models @admin.register(models.Books) class AuthorAdmin(admin.ModelAdmin): prepopulated_fields = {'slug': ('title',), }

Step 6: Create a model in books/models.py.

 

Step 7: After you have a model, Let's create a form in which we will be creating CreateView. In books/forms.py.

 

Step 8: After creating the form let's create CreateView in geeks/views.py, 

 

Step 9: Map a URL to this view in books/urls.py.

 

Step 10: Set Urls for books/urls.py

from django.urls import path from .views import AddBookView app_name = 'books' urlpatterns = [ path('', AddBookView.as_view(), name='add'), ]

Step 11: Create a template for this view in books/add.html, 

html
<html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> </head> <body> <div class="container" style="max-width:600px"> <div class="px-3 py-3 pt-md-5 pb-md-4 mx-auto text-center"> <h1 class="display-4">Welcome to GFG Class Based Views Django</h1> </div> <div class="py-5"> <div class="row"> <div class="col-12"> <form method="post"> {% csrf_token %} {{ form.as_p }} <input type="submit"> </form> </div> </div> </div> </div> </body> </html> 

Step 12: Now run your app by the following command.

python manage.py runserver

Now visit http://127.0.0.1:8000/
 

 

Similar Reads

Practice Tags :