Djangoda şablon aktarma sorunu


#1

arkadaşlar django ya yeni başladım kendi oluşturduğum şablonları içe nasıl aktaracağımı bilmiyorum.settings.py ayarlarını yapamadım bi türlü sürekli
“TypeError at /ilk/
context must be a dict rather than Context”. hatası alıyorum

from django.template import Context
from django.template.loader import get_template
from django.http import *
def ogrenci_listesi(request):
ogrenciler=((“selim”,“yıldırım”,20,40)(“enes”,“sümbül”,60,50))
s=get_template(“deneme.html”)
b=Context({“ogrenciler”:ogrenciler})
html=s.render(b)
return HttpResponse(html)

kodlar bu sekilde ama hata alıyorum çalıştığı zaman


#2

girintileri tam ayarlayamadığım için kusura bakmayın arkadaşlar.


#3

Yanlış görmediysem sıkıntı son iki satırda. render metodu HttpResponsea vermek yerine direkt olarak return deyimiyle döndürmelisiniz. Ama siz yine de render metodunun kullanımını araştırın.


#4

hocam dediğiniz şekilde de olmadı.bi türlü kendi yazdığım şablonları içe aktaramıyorum. galiba settings.py ayarlarında bi yanlışlık yapıyorum.orda ki template ayarları ise şu şekilde:

TEMPLATES = [
{
‘BACKEND’: ‘django.template.backends.django.DjangoTemplates’,
‘DIRS’: [r"C:\Users\IBRAHIM\dj_uygulama\ilk\templates"],
‘APP_DIRS’: True,
‘OPTIONS’: {
‘context_processors’: [
‘django.template.context_processors.debug’,
‘django.template.context_processors.request’,
‘django.contrib.auth.context_processors.auth’,
‘django.contrib.messages.context_processors.messages’,
],
},
},
]


Django template for döngüsü çıktı sorunu
#5

Neden böyle bir yapı kullandığını ve nereden bu şekilde kodlamayı öğrendiğini bilmiyorum fakat biz bu şekilde kodlamıyoruz sana şu şekilde anlatmaya çalışcayım nasıl yapman gerektiğini umarım yardımı dokunur.

views.py

from django.shortcuts import  render
from django.contrib.auth.models import User

def my_function(request):
    users_query = User.objects.all()
    return render(request, 'user/users.html', {'users': users_query })

user/users.html

{% for  user in users %}
    {{ user }}
{% endfor %}

burada benim projemin settins linkini bıraktım ordan dosyayı inceleyebilirsin settings.py dosyam

bu şekilde view içindeki verilerini template içine gönderebiliyorsun

Birde class based kodlama’da mevcut django’da ben onu kullandım kodlarımı inceleyerek onun hakkındada fikir edinebilirsin. ama fonksiyonel yazıyorsan yukarıda yazdıgım mantıkta yazabilirsin.


#6

Sağolun hocam teşekkürler.ben pythonda orta seviye biliyorum. Djangoda ise daha yeniyim kaynak amaçlı Mustafa başerin Django kitabını kullanıyorum fakat baskı olarak biraz eski olduğu bazı noktalarda sıkıntı oluyor. Tekrardan çok sagolun


#7

context must be a dict rather than Context”. hatası alıyorum

context değişkenini şu format da göndermeyi dener misiniz?
context = {‘a’:1}
template = ‘templates/mysite/abc.html’
return render(request, template, context)