CRUD

Model

  • Task
     

Templates:

  • Task_form.html
  • Task_list.html
  • Task_confirm_delete.html


Views:

  • CreateTask
  • ReadTask
  • UpdateTask
  • DeleteTask
     
from django.db import models

class Task(models.Model):
    title = models.CharField(max_length=100)
    description = models.TextField()

 

from .models import *
admin.site.register(Task)

 

from django.views.generic import ListView
from django.views.generic.edit import CreateView, UpdateView, DeleteView
from .models import Task


class CreateTask(CreateView):
    model = Task
    fields = ['title', 'description']
    success_url = "/"
    extra_context = {"title" : "Create Task"}


class ReadTask(ListView):
    model = Task
    context_object_name = "tasks"


class UpdateTask(UpdateView):
    model = Task
    fields = ['title', 'description']
    success_url = "/"   
    extra_context = {"title" : "Update Task"} 


class DeleteTask(DeleteView):
    model = Task 
    success_url = "/"
    

 

from django.urls import path 
from tasks.views import *

urlpatterns = [
    path('', ReadTask.as_view(), name="read_task"),
    path('create-task/', CreateTask.as_view(), name="create_task"),
    path('update-task/<int:pk>/edit', UpdateTask.as_view(), name="update_task"),
    path('delete-task/<int:pk>/delete', DeleteTask.as_view(), name="delete_task"),
]

 

from django.contrib import admin
from django.urls import path, include

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include('polls.urls')),
]

 

{% for task in tasks %}
    
    <a href="{% url 'update_task' task.pk %}">{{task.title}}</a>
    <a href="{% url 'delete_task' task.pk %}"> Delete </a>
    <br>

{% endfor %}

<hr>

<a href="{% url 'create_task' %}">Create Task</a>

 

{{title}}

<form method="POST">
    {% csrf_token %}
    {{form}}
    <input type="Submit" value="Submit">
</form>

 

<p><strong>{{object.title}}</strong></p>
<p>{{object.description}}</p>
<hr>

<form method="POST">
    {% csrf_token %}
    <button type="submit">Delete</button>
</form>

 

 





20 March 2025 | Last Updated: 03 Dec. 2025 | jaimedcsilva

Related
  • Using ngrok with Django
  • Opening a Django project through a .exe file
  • Creating an online store with Django
  • CRUD
  • Creating a Basic Django Project Automatically
  • Filter Horizontal in a custom template
  • GeoIP tracking with IpInfo and Django
  • GeoIP tracking with MaxMind and Django
  • Django User Agents
  • Generating Temporary Download Links
  • Cython - Hiding the Code of a Django Project
  • Quick & Easy Django Deployment on PythonAnywhere
  • A Brief History of Django
  • Django & Paypal Webhooks
  • Generating QR Codes with Django

  • Buy Me a Coffee