SORU
31 Mart 2010, ÇARŞAMBA


Django: bir şablon içinde oturum değişkenleri erişmek?

Eğer bir oturum Django değişken kurdum, gibi:

request.session["name"] = "name"

Bir şablon içinde giriş yapabilirim bir yolu yoktur, ya da bir görünüm içinde onu almak ve onu bir şablona geçirmek zorunda mıyım?

Erişmek istediğim 10 civarında küçük oturum değişkenleri çünkü ben bir şablon içinde ' diye sordum, şablon görünümünden 10 geçen biraz karıştırabilir.

(Bir HttpResponseRedirect çünkü oturum değişkenleri kullanmak zorundayım, ama bir veritabanı değişkenleri saklamak benim amaçlar için abartılı olur.)

Yani doğrudan bir şablon içinde oturum değişkenleri kapmak için bir yolu var mı?

CEVAP
31 Mart 2010, ÇARŞAMBA


Senin için django.core.context_processors.request template context processors eklemek gerekir. O zaman bu gibi erişebilirsiniz:

{{ request.session.name }}

Özel görünümler kullanıyorsunuz RequestContext örneği geçirmeden olmadığına emin olunmalıdır. Örnek documentation alınan:

from django.shortcuts import render_to_response
from django.template import RequestContext

def some_view(request):
    # ...
    return render_to_response('my_template.html',
                              my_data_dictionary,
                              context_instance=RequestContext(request))

Güncelleme 2013:Hala bu cevap için alıyorum upvotes bakılırsa, insanlar hala üç yıldan fazla özgün olarak yazılmış sonra yararlı bulma. Görünüm yukarıdaki kod hala geçerli olmasına karşın, günümüzde bu işi çok daha basit bir yol olduğunu, ancak dikkat edin. render() fonksiyon render_to_response(), çok benzer ama RequestContext otomatik olarak, açıkça geçirmek için bir ihtiyaç olmadan kullanır:

from django.shortcuts import render

def some_view(request):
    # ...
    return render(request, 'my_template.html', my_data_dictionary)

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Jon Reed

    Jon Reed

    14 AĞUSTOS 2006
  • paulandstorm

    paulandstorm

    4 EYLÜL 2006
  • YEAH1TV

    YEAH1TV

    19 ŞUBAT 2009