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

  • sknbp

    sknbp

    16 Kasım 2006
  • Theodore Leaf

    Theodore Lea

    29 AĞUSTOS 2006
  • whiteboy7thst

    whiteboy7ths

    1 Temmuz 2009