এডমিন প্যানেলে পিডিএফ এক্সপোর্ট বাটন যোগ করি

Install Required Packages:

pip install reportlab django-admin-actions

Create the Model:

from django.db import models

class Post(models.Model):
    title = models.CharField(max_length=200)
    content = models.TextField()
    created_at = models.DateTimeField(auto_now_add=True)

    def __str__(self):
        return self.title

Run Migrations:

python manage.py makemigrations
python manage.py migrate

admin.py

from django.contrib import admin
from django.http import HttpResponse
from reportlab.pdfgen import canvas
from io import BytesIO
from django_admin_actions.admin import ActionsModelAdmin

from .models import Post

def generate_pdf(modeladmin, request, queryset):
    response = HttpResponse(content_type='application/pdf')
    response['Content-Disposition'] = 'attachment; filename="posts.pdf"'

    buffer = BytesIO()
    p = canvas.Canvas(buffer)

    for post in queryset:
        p.drawString(100, 700, f"Title: {post.title}")
        p.drawString(100, 680, f"Content: {post.content}")
        p.showPage()

    p.save()
    pdf = buffer.getvalue()
    buffer.close()
    response.write(pdf)
    return response

generate_pdf.short_description = "Generate PDF"

@admin.register(Post)
class PostAdmin(ActionsModelAdmin):
    list_display = ['title', 'content', 'created_at']
    actions = [generate_pdf]

Last updated