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