SORU
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ş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • alexis gillis

    alexis gilli

    23 HAZİRAN 2011
  • RiceBunny

    RiceBunny

    16 ŞUBAT 2006
  • WoodysGamertag

    WoodysGamert

    17 Aralık 2009