মডিউল ৭-১০ঃ পোস্ট ডিলিট করা

এই মডিউলে আমাদের কাজ হবে ফ্রন্ট-এন্ড থেকে পোষ্ট ডিলিট করার ব্যবস্থা করা।

পোস্ট এডিট করার জন্য নতুন একটি URL-প্যাটার্ন এ্যাড করি

Code:: 7.10.1 posts/urls.py

from django.contrib import admin
from django.urls import path, include
from . import views
urlpatterns = [
    path('add/', views.add_post, name='add_post'),
    path('edit/<int:id>', views.edit_post, name='edit_post'),
    path('delete/<int:id>', views.delete_post, name='delete_post'),
]

৮ নং লাইনে এ্যাড করা URL-প্যাটার্নের মাধ্যমে delete_post( ) ফাংশনে একটি int প্যারামিটার পাঠানো হয়েছে। delete_post( ) ফাংশন লিখে ফেলি-

Code:: 7.9.2 posts/views.py

from django.shortcuts import render, redirect
from . import forms
from . import models
# Create your views here.

...
...
...

def delete_post(request, id):
    post = models.Post.objects.get(pk=id) 
    post.delete()
    return redirect('homepage')
  • post.delete() মেথড কল করে নির্দিষ্ট পোস্টের ডাটা ডেটাবেজ থেকে ডিলিট করা হয়েছে

templates/home.html ফাইলে প্রতিটি পোস্টের জন্য একটি <a> ট্যাগ এ্যাড করি -

Code:: 7.9.3 templates\home.html

{% extends 'base.html' %} {% block content %}

<div class="d-flex flex-wrap justify-content-center px-5 pt-5">
  {% for post in data %}
  <div class="col-sm-3">
    <div class="card m-2">
      <div class="card-body">
        <h5 class="card-title">{{post.title}}</h5>
        <p class="card-text">{{post.content}}</p>
        <p>Author : {{post.author.name}}</p>
        <p>
          Category : {% for cat in post.category.all %} 
          <button class="btn btn-primary btn-sm m-2" disabled >{{cat.name}} </button>
          {% endfor %}
        </p>
        <a href="{% url 'edit_post' post.id %}" class="btn btn-warning">Edit</a>
        <a href="{% url 'delete_post' post.id %}" class="btn btn-warning">Delete</a>
      </div>
    </div>
  </div>
  {% endfor %}
</div>
{% endblock %}

১৭ নং লাইনে 'delete_post' URL-প্যাটার্নটিতে int প্যারামিটার হিসেবে post.id কে পাঠানো হয়েছে।

এখন প্রজেক্ট রান করলে প্রতিটি পোস্টের জন্য একটি এডিট বাটন দেখতে পাবো যেখানো ক্লিক করে নির্দিষ্ট পোস্টটি ডিলিট হয়ে যাবে।

Last updated