How To Create Django Forms Using Class Based Views
Introduction
Let’s see the example of Python Django class-based forms. In this tutorial, you’ll learn how to create forms using Django, We will be using the Class-Based Views Functions as every form is expected to follow the POST method, if the submitted form is valid then the data would save in the database. This is the most powerful technique to create Django forms. So let's start with this awesome
tutorial.
For Django setup, you can also follow this blog.
Django Project Setup
Make a folder and open cmd from that folder. Use the following commands step by step
1. To create isolated python environments
python -m venv venv
2. To activate the virtual environment
venv\Scripts\activate
3. Enter the Django command after you've established and activated a virtual environment
pip install django
4. To make a project directory
django-admin startproject projectname
5. Go to the project directory
cd projectname
6. Create the Django app
python manage.py startapp appname
7. Open the project
code .
8. Migrate and create Django user
python manage.py migrate
python manage.py createsuperuser
9. Start the Django server
python manage.py runserver
10. Check admin on this URL
http://127.0.0.1:8000/admin
11. Register your app in projectname/settings.py
INSTALLED_APPS = [
'appname.apps.AppnameConfig',
... # Leave all the other INSTALLED_APPS
]
Django class-based forms
1. Create a model in appname/models.py
class Data(models.Model):
name = models.CharField(max_length=60)
body = models.CharField(max_length=200)
def __str__(self):
return self.name
2. Migrate model on Admin
python manage.py migrate
python manage.py makemigrations
3. Register database model on appname/admin.py
from .models import Data
admin.site.register(Data)
4. Making appname/forms.py. You can see here that we've imported forms and models. I'm going to use class meta to generate all the fields from the database. So here, I define the fields that I want to use.
from django import forms
from .models import Data
class DataForm(forms.ModelForm):
class Meta:
model = Data ## Database Model name
fields = ('name', 'body')
5. Register forms.py in appname/views.py. Here we're going to just validate the form and then perform an action. We're going to save the data if the submitted data is valid.
from django.shortcuts import render from appname.forms import DataForm def form_detail(request): if request.method == 'POST': form = DataForm(request.POST) if form.is_valid(): form.save() form = DataForm() return render(request,'contact.html', {'form' : form})
6. In App folder make the templates folder and create the file name appname/templates/contact.html
<form method="post">{% csrf_token %} {{ form.as_p }} <input type="submit" value="Send message"> </form>
7. Adding path to appname/urls.py
from django.urls import path from appname import views urlpatterns = [ path('', views.form_detail, name="form") ]
8. Include your app name in the projectname/urls.py
from django.urls import include
path( '' , include( 'appname.urls'))
9. Restart the server
python manage.py runserver
Thank you for reading!
So we found a clear method to create forms using class-based Django. I hope everything is clear and helpful for you. Feel free to comment if you have any queries.
If you found this article useful, stay tuned for more articles on Django.
Cheers!✌
No comments:
Post a Comment
Thank you for submitting your comment! We appreciate your feedback and will review it as soon as possible. Please note that all comments are moderated and may take some time to appear on the site. We ask that you please keep your comments respectful and refrain from using offensive language or making personal attacks. Thank you for contributing to the conversation!