𝗝𝗶𝘀𝗶 𝗡𝗶𝗹𝗶𝘃𝘆𝗼𝗷𝗳𝘂𝗻𝘇𝗮 𝗞𝘂𝗵𝘂𝘀𝘂 𝗖𝗼𝗻𝘁𝗲𝘅𝘁 𝗣𝗿𝗼𝗰𝗲𝘀𝘀𝗼𝗿𝘀 𝗸𝗮𝘁𝗶𝗸𝗮 𝗗𝗷𝗮𝗻𝗴𝗼
Ninatengeneza duka la mtandaoni la vifaa (accessories) kwa kutumia Django.
Nilitengeneza navbar ili kuonyesha kategoria za bidhaa. Mwanzoni, niliandika kategoria hizo moja kwa moja kwenye kodi (hard-coded). Hii ilifanya kazi kwa muda fulani.
Kisha nikaona tatizo. Nikiongeza kategoria mpya, lazima nirekebishe navbar kwa mkono. Hii si njia bora ya kufanya kazi.
Wazo langu la kwanza lilikuwa kupitisha kategoria kupitia context kwenye view yangu. Haraka niliona tatizo la pili. Kila ukurasa unahitaji navbar. Hii inamaanisha ningelazimika kurudia kodi ile ile katika kila view. Hii inasababisha kodi kuwa ya vurugu.
Nilipata njia bora zaidi: Django Context Processors.
Context processors hufanya data iweze kutumika kwenye templates zote. Huhitaji kupitisha data kutoka kwenye kila view.
Tumia context processors kwa:
- Kategoria za uendeshaji (navigation categories)
- Mipangilio ya tovuti (site settings)
- Arifa za mtumiaji (user notifications)
- Data za kikapu cha manunuzi (shopping cart data)
Context processor ni function ya Python. Inachukua object ya request na kurudisha dictionary.
Example:
def custom_context(request):
return {
"custom_value": "hello from context processors"
}
Lazima uandikishe (register) function hiyo kwenye settings zako. Iongeze kwenye orodha ya context_processors ndani ya mipangilio ya TEMPLATES.
Example:
'OPTIONS': {
'context_processors': [
'myapp.context_processors.custom_context',
],
},
Sasa, unatumia data hiyo kwenye templates zako hivi:
{{ custom_value }}
Hii ilitatua tatizo langu. Navbar yangu sasa inapata data za kategoria kiotomatiki kwenye kila ukurasa. Sitalazimika kurudia kodi tena.
Kutengeneza vipengele (features) mara nyingi hukufundisha dhana mpya. Kwangu mimi, hii ilikuwa context processors.
Source: https://dev.to/merdas369/how-i-learned-about-context-processors-in-django-5e2h