1. Template Dizininizi Kontrol Edin
Django, şablon dosyalarını belirli dizinlerden arar. Bu yüzden, şablonlarınızı doğru yere koyduğunuzdan emin olmalısınız. Django projesinde şablonlar genellikle `templates` adında bir klasörde bulunur. Örneğin, şablonlarınızı şu şekilde düzenlemelisiniz:
project/
├── myapp/
│ └── templates/
│ └── myapp/
│ └── template_name.htmlEğer şablonlarınız doğru dizinde değilse, Django onları bulamaz ve bu hatayı alırsınız. Yani şablonlarınızı doğru dizine yerleştirdiğinizden emin olun.
2. TEMPLATES Ayarlarını Kontrol Edin
Django'nun şablonları bulabilmesi için, `settings.py` dosyasındaki `TEMPLATES` ayarlarını doğru yapılandırmanız gerekir. Burada `DIRS` parametresi çok önemlidir çünkü şablon dosyalarının hangi dizinlerde aranacağını belirler. Örneğin:
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [os.path.join(BASE_DIR, 'templates')], # Burada şablonlarınızı ekleyin
'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',
],
},
},
]Bu ayarın, Django'nun şablonlarınızı doğru dizinde aramasını sağlar. Eğer `DIRS` parametresi eksikse, Django şablonlarınızı bulamayabilir.
3. Template İsmini Doğru Yazın
Bazen hata, aslında şablon dosyasının isminin yanlış yazılmasından kaynaklanabilir. Django, şablon dosyalarını ararken dosya isimlerini de tam olarak bekler. Mesela, `template_name.html` isminde bir dosya yerine yanlışlıkla `Template_Name.html` yazmış olabilirsiniz. Django, dosya ismini küçük harflerle ve tam olarak bekler. Bu nedenle şablon dosyanızın ismini doğru yazdığınızdan emin olun.
4. Uygulama Dizininizi Kontrol Edin
Eğer şablonları bir uygulama içinde kullanıyorsanız, `APP_DIRS` parametresini `True` yaparak Django’nun uygulama dizinlerindeki şablonları da bulmasını sağlayabilirsiniz. Yani, her uygulama içinde `templates` dizini olmalı ve bu dizin içinde şablonlarınız yer almalıdır. Örnek bir yapı:
myapp/
└── templates/
└── myapp/
└── template_name.htmlBu şekilde, şablonunuzu doğru dizine yerleştirdiğinizde Django onu bulacaktır.
5. Debug Modunu Etkinleştirin
Django’nun hata mesajlarını daha ayrıntılı görebilmeniz için `DEBUG` modunu etkinleştirmeniz çok faydalıdır. `settings.py` dosyanızda aşağıdaki gibi bir ayar yaparak hata mesajlarını daha detaylı şekilde görebilirsiniz:
DEBUG = TrueBu, Django’nun şablon bulamadığında neden bulamadığını anlamanızı kolaylaştırır. Hata mesajları, şablon dosyasının tam yolunu ve Django’nun hangi dizinlerde arama yaptığını gösterir.
6. Template Yolu ile İlgili Hataları Düzeltin
Bazen, şablonların doğru dizinde olduğu halde yine de “Template Not Found” hatası alabilirsiniz. Bunun nedeni, Django'nun şablon yolunu düzgün bir şekilde bulamamasıdır. Eğer şablonları dışarıdan bir dizine koyduysanız veya birden fazla uygulama kullanıyorsanız, `DIRS` parametresine şablonlarınızı koyduğunuz dizini eklemeyi unutmayın. Örneğin:
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [os.path.join(BASE_DIR, 'my_templates')], # Şablonları dış bir dizine koyduysanız
'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',
],
},
},
]Sonuç: Sorununuz Çözüldü Mü?
Artık Django’da karşılaştığınız “Template Not Found” hatasını nasıl çözeceğinizi biliyorsunuz. Şablonların doğru dizinde olduğundan, `settings.py` dosyasındaki ayarların doğru yapıldığından ve şablon dosyanızın isminin doğru yazıldığından emin olun. Eğer hala aynı hatayı alıyorsanız, şablonlarınızın yollarını dikkatlice kontrol edin.
Unutmayın, Django'nun hata mesajları genellikle sorunun ne olduğunu gösterir, bu yüzden hata mesajlarını dikkatle inceleyin. Adım adım bu kontrol listelerini takip ettiğinizde, Django şablonlarını bulmada yaşadığınız her türlü sorun çözülecektir.