Aşağıdaki Django şablon içerik işlemci sorununa girdim.Bu Django şablonu içerik işlemcisi neden tüm istekler için geçerli değil?
bağlam işlemci myapp/context_processors.py
tanımlanır: Bu standart Django bağlam işlemciler ile birlikte settings.py kadar kablolu
def my_context_processor(request):
return {
'foo': 123,
}
:
TEMPLATE_CONTEXT_PROCESSORS = (
'django.contrib.auth.context_processors.auth',
'django.core.context_processors.debug',
'django.core.context_processors.i18n',
'django.core.context_processors.media',
'myproject.myapp.context_processors.my_context_processor',
)
Ben karşılaşmak ediyorum sorun olduğunu my_context_processor tüm istekler için geçerli değildir.
O şu kodu uygulanmaz:
def index(request):
return render_to_response("index.html", locals())
Ancak aşağıdaki kodu için uygulanır:
def index(request):
return render_to_response("index.html", locals(), context_instance=RequestContext(request))
O bağlam işlemciler vardır izlenimi altında oldu TÜM isteklerde, sadece context_instance
sağlandığında değil.
İçerik işlemcilerimin TÜM istekleri için nasıl uygulanmasını sağlarım?
İçerik_instance boilerplate'i önlemek için kullanabileceğim herhangi bir DRY kısayolu var mı? Oldukça yaygın bir senaryonun, içerik işlemci değişkenlerinin tüm istekler için mevcut olmasını isteyeceğiniz varsayımıdır. Tüm görünümlerin "linked_sites" listesine ihtiyacı olan bir altbilgi içerdiğini varsayalım. "linked_sites" bir içerik işlemcisi tarafından sağlanacaktır, ancak kodumun context_instance = RequestContext (request) :-) ile serpilmesinden kaçınmak istiyorum – knorv