Django Class Based Views Blog App

 Models


class Blog(models.Model):

    title = models.CharField(max_length =200)

    description = models.TextField()


    def __str__(self):

        return self.title


Python manage.py makemigrations
Python manage.py migrate

views


from .models import Blog

from django.views.generic.edit import CreateView

from django.views.generic.list import ListView

from django.views.generic.edit import DeleteView

from django.views.generic.edit import UpdateView


class BlogCreate(CreateView):
    model =  Blog
    fields = '__all__'
    success_url = '/blog'

class BlogList(ListView):
    model = Blog

class BlogDelete(DeleteView):
    model = Blog
    success_url = '/list'


class BlogUpdate(UpdateView):
    model = Blog
    fields = '__all__'
    template_name = 'dapp/blog_form.html'
    success_url = '/list'


urls


from .views import BlogCreate
from .views import BlogList
from .views import BlogDelete
from .views import BlogUpdate


 path('blog',BlogCreate.as_view()),
    path('list',BlogList.as_view(),name='list'),
    path('<pk>/delete/',BlogDelete.as_view(),name='delete'),
    path('<pk>/update',BlogUpdate.as_view(),name='update')




Templates

Create a folder inside template


app/list


<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Course</title>
      <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/css/bootstrap.min.css" rel="stylesheet">
  <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/js/bootstrap.bundle.min.js"></script>
</head>
<body>
<div class="container mt-5">
<ul>

    {% for object in object_list %}

    <li>{{ object.title }}</li>
    <li>{{ object.description }}</li>

        <a href="{% url 'update' object.pk %}" class="btn btn-info">Update</a>

        <a href="{% url 'delete' object.pk %}" class="btn btn-danger">Delete</a>





    <hr/>

    {% empty %}
    <li>No objects yet.</li>
    {% endfor %}
</ul>
</div>



</body>
</html>

app/confirm_delete


<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<form method="post">
    {% csrf_token %}



<p>Are you sure you want to delete "{{ object }}"?</p>



    <input type="submit" value="Confirm">
</form>

</body>
</html>


app/blog_form.html   -(Create/update)


<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>

<form method="POST" enctype="multipart/form-data">

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

    <!-- Using the formset -->
    {{ form.as_p }}

    <input type="submit" value="Submit">
</form>

</body>
</html>

Comments

Popular posts from this blog

Insert And Retrieve Images From SQlite Database using Tkinter and Python

Flask and Sqlite Basic Crud Python Tutorial