Open In App

Create View - Function based Views Django

Last Updated : 13 Jan, 2020
Comments
Improve
Suggest changes
Like Article
Like
Report
Create View refers to a view (logic) to create an instance of a table in the database. It is just like taking an input from a user and storing it in a specified table. Django provides extra-ordinary support for Create Views but let's check how it is done manually through a function-based view. This article revolves around Create View which involves concepts such as Django Forms, Django Models. For Create View, we need a project with some models and forms which will be used to create instances of that model.

Django Create View - Function Based Views

Illustration of How to create and use create view using an Example. Consider a project named geeksforgeeks having an app named geeks.
Refer to the following articles to check how to create a project and an app in Django.
After you have a project and an app, let's create a model of which we will be creating instances through our view. In geeks/models.py, Python3 1==
# import the standard Django Model
# from built-in library
from django.db import models
 
# declare a new model with a name "GeeksModel"
class GeeksModel(models.Model):

    # fields of the model
    title = models.CharField(max_length = 200)
    description = models.TextField()

    # renames the instances of the model
    # with their title name
    def __str__(self):
        return self.title
After creating this model, we need to run two commands in order to create Database for the same.
Python manage.py makemigrations
Python manage.py migrate
Now we will create a Django ModelForm for this model. Refer this article for more on modelform - Django ModelForm – Create form from Models. create a file forms.py in geeks folder, Python3 1==
from django import forms
from .models import GeeksModel


# creating a form
class GeeksForm(forms.ModelForm):

    # create meta class
    class Meta:
        # specify model to be used
        model = GeeksModel

        # specify fields to be used
        fields = [
            "title",
            "description",
        ]
Now we have everything ready for back end. Let's create a view and template for the same. In geeks/views.py, Python3 1==
from django.shortcuts import render

# relative import of forms
from .models import GeeksModel
from .forms import GeeksForm


def create_view(request):
    # dictionary for initial data with 
    # field names as keys
    context ={}

    # add the dictionary during initialization
    form = GeeksForm(request.POST or None)
    if form.is_valid():
        form.save()
        
    context['form']= form
    return render(request, "create_view.html", context)
Create a template in templates/create_view.html, html
<form method="POST" enctype="multipart/form-data">

    <!-- Security token -->
    {% csrf_token %}

    <!-- Using the formset -->
    {{ form.as_p }}
    
    <input type="submit" value="Submit">
</form>
Let's check what is there on http://localhost:8000/ django-create-view-function-based Now let's try to enter data in this form, create-view-function-enter-data Bingo.! Create view is working and we can verify it using the instance created through the admin panel. django-mopdel-created-create-view This way one can create create view for a model in Django.

Next Article
Practice Tags :

Similar Reads