Django ile dinamik menu nasıl yapılır?

uzun süredir django öğrenmek istiyordum ve öğrenemye başladım. kendim için bir blog sitesi yaptım ve bu konuda sevgili “Barış ASLAN” adlı yotube kanalı sahibi arkadaşımıza teşekkür ediyorum.

django ile views kullanımında bir sayfa isteği olup bu sayfaya render ile veri aktarmak konusunda sorunum yok ama dinamik bir menü oluşturmak isteyince ana şablona herhangi bir istek olmadan bu verilerin veri tabanında gelmesi gerekiyor.

ben blog sitesi için kategori olayını yapmak istiyorum ve kategorileri oluşturdum. sadece views ve template konusunda sorun yaşıyorum.

bu konuda model, views ve template kısmını içeren basit bir örnek sunabilecek biri var mı acaba?

Django’ya başlangıç için Django’nun resmi sitesindeki kılavuzlardan daha iyisini görmedim şu zamana kadar. Ayrıca bahsettiğiniz konuları da içeriyorlar. İçerik İngilizce ama çok ağır bir İngilizce değil.

üstad klavuz güzel ama ben biraz farklı kaynaklardan baktığım için orayı incelemedim. ayrıca sorunu çözdüm ve burayada bilgi olarak yazayım belki ilerde ihtiyacı olanlar olur.

django ile views sistemi bir sorugu geldiğinde bu sorguyu işleyip html sayfasına veri olarak gönderiyor ama benim istediğim gibi herhangi bir sorgu gelmeden ve sitenin her yerinden ulaşabileceğimiz şablonlar oluşturmak için ilgili şablonu herhangi bir klasörde veya ana klasörde oluşturup bu klasörün yolunu setings içerisinde TEMPLATES alanında tam yolu belirterek ilgili değişkeni istediğimiz yerden ulaşabiliyoruz.

from category.models import Category

def category_list(context):
    return {'category_menu': Category.objects.filter(status='published')}

ben munus.py diye bir dosya oluşturdum ve içeriği yukarıdaki gibi. böylece category_menu değişkenine sitenin her yerinden erişebiliyorum ve hiçbir istek olmadan menüyü gösterebiliyorum.

şimdi kategorileri oluşturdum ama o kategorideki yazıları kategori detay sayfasında göstermeyi beceremedim. onunla ilgileniyorum. teşekkürler ilginiz için

1 Beğeni

Onun sorunu, mesela view nedir değil de view nasıl oluşturulur sorularına cevap vermişler. Bu hiçbir işe yaramaz.(Getting Started bölümündeki partlardan bahsediyorum)

Şurada view’ın ne olduğu açıklanmış aslında:

Each view is responsible for doing one of two things: Returning an HttpResponse object containing the content for the requested page, or raising an exception such as Http404 . The rest is up to you.

Generally, a view retrieves data according to the parameters, loads a template and renders the template with the retrieved data.

Hatta örnek de vermiş.

Bunlara göre "view"a “controller” diyebiliriz aslında.