Context Processor

মনে করি আমাদের একটি ব্লগ ওয়েবসাইটে কয়েকটি অংশ আছে যেমন ফুটার সাইডবার ইত্যাদি অনেক সময় সাইডবার এ ম্যানুয়াল কোয়েরি করে ডেটা শো করতে হয় তখন নিচের পদ্ধতি অবলম্বন করবো।

আমার app এর নাম blog আমি bolg ফোল্ডারে context_processors.py নামে একটি ফাইল তৈরী করে html টেম্পলেট এ সেটা ব্যবহার করবো।

your_project/
└── blog/
    ├── context_processors.py
    └── other_blog_files.py

context_processors.py

আমি আমার apps এর Page নামক মডেল থেকে ডেটা কোয়েরি করলাম

from .models import Page
def footer_data(request):
    pages = Page.objects.all()
    return {'footer_pages': pages}

context_processors কে প্রজেক্ট এর settings.py তে অ্যাড করলাম

TEMPLATES = [
    {

        'OPTIONS': {
            'context_processors': [
                'blog.context_processors.footer_data',  # Replace 'blog' with your app name
                
            ],
        },
    },
]

এবার html টেম্পলেট এর যেখানে শো করতে চাই ওখানে শো করাই

                  <ul>
                     {% for page in footer_pages %}
                         <li><a href="#">{{ page.title }}</a></li>
                     {% endfor %}
                 </ul>

Last updated