মডিউল ৭-১০ঃ পোস্ট ডিলিট করা
এই মডিউলে আমাদের কাজ হবে ফ্রন্ট-এন্ড থেকে পোষ্ট ডিলিট করার ব্যবস্থা করা।
পোস্ট এডিট করার জন্য নতুন একটি 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