عند الاستيلاء عليها لاستخدام جانغو معالجات السياق؟
-
06-07-2019 - |
سؤال
إذا ما يقرب من نصف وجهات نظري تتطلب نفس مجموعة البيانات، غير أنه من المناسب استخدام معالج السياق لجعل البيانات متوفرة دوما، أم أن هناك طريقة أفضل لتجنب تكرار رمز للحصول على تلك البيانات عبر العديد من وجهات النظر دون الاستعلام البيانات إذا كان لن تستخدم في الرأي؟
المحلول
وسيتم تشغيل مهيئ RequestContext
أي معالجات السياق المدرجة في ملف الإعدادات، لكنه يأخذ أيضا قائمة من معالجات إضافية لتشغيل. أي معالجات السياق أغراض العامة يمكن وضعها في settings.py ويمكن إضافة أكثر منها محددة إلى RequestContext
على أساس كل حالة على حدة.
واترك RequestContext
خارج تماما لعدم تشغيل أي معالجات السياق.
# want context processors listed in settings.py as well as some more specific ones
return render_to_response('template.html', {'foo':'bar'}, context_instance=RequestContext(request, processors = extra_processors))
# want only context processors listed in settings.py
return render_to_response('template.html', {'foo':'bar'}, context_instance=RequestContext(request))
# no context processors
return render_to_response('template.html', {'foo':'bar'})
نصائح أخرى
ويمكنك تصفية التي تعتبرها فعلا استخدام معالجات السياق عن طريق تمرير RequestContext(request)
فقط فقط لتلك التي في حاجة إليها، منها مثلا:
# want context processors
return render_to_response('template.html', {'foo':'bar'}, context_instance=RequestContext(request))
# no context processors
return render_to_response('template.html', {'foo':'bar'})