Django’da Template Not Found Hatası Nedir?
Genellikle bu hatayı almanızın birkaç yaygın sebebi vardır. Bunu anlamadan önce, hatanın arkasındaki mantığı çözmek gerekir. Django, HTML dosyalarınızı belirli bir yerden alır ve görüntüler. Eğer bu dosyalar eksikse veya yanlış yerdeyse, Django ne yapacağını şaşırır ve hata mesajını gösterir.
Hata Çözümü İçin Adımlar
İlk adım, template dosyasının doğru konumda olup olmadığını kontrol etmektir. Django, template dosyalarını `templates/` adlı bir klasörde arar. Bu klasör projenizin kök dizininde olmalıdır.
Örneğin, Django projenizde şöyle bir yapıyı hedefliyorsunuz:
```
project_name/
│
├── app_name/
│ └── views.py
│
├── templates/
│ └── app_name/
│ └── index.html
└── settings.py
```
Bu yapı oldukça yaygındır ve Django, `app_name/index.html` dosyasını app_name adlı uygulamanızın templates klasöründe arar.
# 2. `settings.py` Dosyasını Kontrol Edin
```python
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [
BASE_DIR / 'templates', # templates klasörünüzün yolu
],
'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',
],
},
},
]
```
Burada `DIRS` kısmına templates klasörünün yolunu eklemeyi unutmayın.
# 3. Uygulama Adlarını Kontrol Edin
Örneğin, `settings.py` dosyanızda şu şekilde bir düzenleme yapmalısınız:
```python
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'app_name', # Uygulamanız burada yer almalı
]
```
# 4. Template Yolu Yazım Hatalarını Kontrol Edin
Sonuç
Eğer hala sorun yaşıyorsanız, bir göz atmak için logs kısmını da inceleyebilirsiniz. Django, genellikle hata mesajlarında daha fazla detay verir.
Unutmayın, Django öğrenme yolculuğunuzda bu tür hatalarla karşılaşmak normaldir. Önemli olan, hatalardan ders çıkararak gelişmeye devam etmektir. Şimdi, Django uygulamanızda yeni bir sayfa tasarlamak için hazır mısınız?