11 ŞUBAT 2010, PERŞEMBE
Django şablon içerik işlemciler
Garip bir sorun var, genel bir sorgu bağlamında işlemciler kullanarak eklemek istiyorum. Bu following tarafından şöyle yaptım:
gibi benim app bir processor.py yaptı:
from myproject.myapp.models import Foo
def foos(request):
return {'foos': Foo.objects.all()}
ve benim setting.py sonunda ekledim:
TEMPLATE_CONTEXT_PROCESSORS = ('myapp.processor.foos',)
Son olarak ben bu benim görüşüm pass:
def index_view(request):
return render_to_response('index.html', {}, context_instance=RequestContext(request))
ve index.html şablon: at
<select id="select_foo">
{% for foo in foos %}
<option value="/{{ foo.slug }}">{{ foo.name }}</option>
{% endfor %}
</select>
Ve son olarak benim url:
(r'^$', 'myapp.views.index_view'),
Benim foos herhangi bir sorun olmadan görüntü, ancak benim media_url ve diğer bağlamlarda gitti. Sorun ne olabilir
CEVAP
10 ŞUBAT 2012, Cuma
TEMPLATE_CONTEXT_PROCESSORS varsayılan değerler eklemek gerekir. Ancak, sabit kodlama Django belirli bir sürüme de bağlı bu değerler, yerine, aşağıdaki varsayılan değerler için bağlam işlemci ekleyebilirsiniz:
from django.conf import global_settings
TEMPLATE_CONTEXT_PROCESSORS = global_settings.TEMPLATE_CONTEXT_PROCESSORS (
"myapp.processor.foos",
)
Bu Python bir demet olarak tanır yani satır sonunda virgül eklemek için emin olun.
Bunu Paylaş:
Django ile AngularJS Çakışan şablon et...
Nasıl Django şablon içinde sitemin dom...
Listedeki ilk maddenin özelliklerinin ...
Django: bir şablon içinde oturum değiş...
Django şablon Yolu...