Django CRUD(Create, Retrieve, Update, Delete)

Create : create or add new data in the corresponding database.

Retrieve:data accessing from database.

Update : Make changes with the data.

Delete: remove the particular data in the database.

Before start the crud operation make sure to create project and app and register app in the setting.py

CREATE
model.py

from django.db import models 
class SalesModel(models.Model): 
    name = models.CharField(max_length = 20) 
    message = models.CharField(max_length=50) 
    
    def __str__(self): 
        return self.name
        return self.message

After creating this model run following command:-

python manage.py makemigrations
python manage.py migrate

Creating Form.py in apps

from django import forms 
from .models import SalesModel 
  

class SalesForm(forms.ModelForm): 
  
    
    class Meta: 
        model = SalesModel 
  
        fields = [ 
            "name", 
            "message", 
        ] 


Now Creating Views.py

Views.py : type the following code

from django.shortcuts import render 
from django.shortcuts import (get_object_or_404,
                              render, 
                              HttpResponseRedirect)  

from .models import SalesModel 
from .forms import SalesForm 
  
  
def create(request): 
    
    context ={} 
  
    
    form = SalesForm(request.POST or None) 
    if form.is_valid(): 
        form.save() 
          
    context['form']= form 
    return render(request, "create.html", context)
def listt(request): 
    
    context ={} 
    context["dataset"] = SalesModel.objects.all() 
          
    return render(request, "listt.html", context)
def detail(request,id): 
    context ={} 
    context["data"] = SalesModel.objects.get(id = id) 
    return render(request, "detail.html", context) 
  
 
def update(request,id): 
    context ={} 
    obj = get_object_or_404(SalesModel, id = id)
    form = SalesForm(request.POST or None, instance = obj) 
    if form.is_valid(): 
        form.save() 
        return HttpResponseRedirect("/"+id) 
  
     
    context["form"] = form 
    return render(request, "update.html", context)

  
def delete(request, id): 
    context ={} 
    obj = get_object_or_404(SalesModel, id = id) 
    if request.method =="POST": 
       obj.delete()
       return HttpResponseRedirect("/") 
  
    return render(request, "delete.html", context) 

urls.py

"""salesforcedrillers URL Configuration

The `urlpatterns` list routes URLs to views. For more information please see:
    https://docs.djangoproject.com/en/3.0/topics/http/urls/
Examples:
Function views
    1. Add an import:  from my_app import views
    2. Add a URL to urlpatterns:  path('', views.home, name='home')
Class-based views
    1. Add an import:  from other_app.views import Home
    2. Add a URL to urlpatterns:  path('', Home.as_view(), name='home')
Including another URLconf
    1. Import the include() function: from django.urls import include, path
    2. Add a URL to urlpatterns:  path('blog/', include('blog.urls'))
"""
from django.contrib import admin
from django.urls import path
from crud.views import *

urlpatterns = [
    path('admin/', admin.site.urls),
    path('',create),
    path('list/',listt),
    path('detail/',detail),
    path('update/',update),
    path('delete/', delete)
    
]


Setting.py

INSTALLED_APPS = [
    'crud',
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',

Create.html

<form method="POST" enctype="multipart/form-data"> 
 
    <!-- Security token -->
    {% csrf_token %}
 
    <!-- Using the formset -->
    {{ form.as_p }}
     
    <input type="submit" value="Submit">
</form>

detail.html

<div class="main"> 
    <!-- Display attributes of instance -->
    {{ data.name }} <br/>
    {{ data.message}}
</div>

list.html

<div class="main"> 
 
    {% for data in dataset %}.
 
    {{ data.name }}<br/>
    {{ data.message}}<br/>
    <hr/>
 
    {% endfor %}
 
</div>

update.html

<div class="main"> 
    <!-- Create a Form -->
    <form method="POST">
        <!-- Security token by Django -->
        {% csrf_token %}
 
        <!-- form as paragraph -->
        {{ form.as_p }}
 
        <input type="submit" value="Update">
    </form>
 
</div>

delete.html

<div class="main"> 
    <!-- Create a Form -->
    <form method="POST">
        <!-- Security token by Django -->
        {% csrf_token %}
        Sure you want to delete?
        <input type="submit" value="Yes" />
        <a href="/">Cancel </a>
    </form>
</div>

Create Output

View Output

Update Output

Delete Output

Subscribe Now