2011-09-19 16 views

cevap

25

Sorunuzun başlığı "görüntü" ve "şablon" öğelerinin birbirinin yerine geçebileceğini varsayar - bunlar değil. Mevcut siteyi bir şablona almak için, şablonu oluşturmak için kullanılan içeriğe eklenmesi gerekir. Bir RequestContext kullanıyorsanız, bunu otomatik olarak yapmak için bir içerik işlemci yazabilirsiniz. senin TEMPLATE_CONTEXT_PROCESSORS ekleyebilir Sonra

from django.contrib.sites.models import Site 

def site_processor(request): 
    return { 'site': Site.objects.get_current() } 

ve böylece gibi kullanmak:

Öyle gibi bunu yapmanın bir bağlam işlemci yazabilir

<h3>{{ site.name }}</h3> 
+0

yardımcı Umut, bu yüzden doğru, ele alınmalıdır:

Yani işlemci böyle görünecek? Bunun için yerleşik bir içerik işlemci yok mu? –

+0

Evet, 'direct_to_template'' RequestContext' kullanır, ancak Django'da olmadığı için kendi içerik işlemcinizi yazmanız gerekir. Alternatif olarak, geçerli siteyi içeriğe ekleyen bir argümanı 'direct_to_template' öğesine iletebilirsiniz. –

+0

İşlev, site yerine "site_processor" olarak adlandırılıyor? –

0

Weirdly, bradleyayers işlemci kullanan Null sonuç verdi, bu nedenle Site çerçevesini kullanmak yerine, isteğin içinde parametreyi kullandım.

def host_processor(request): 
    return { 'host': request.get_host() } 

ben `django.views.generic.simple.direct_to_template` kullanıyorum

İlgili konular