Eğer `{{ post.created_at }}` alanını Django template içinde “insan okunabilir fark formatında” (örneğin: “3 dakika önce”, “2 gün önce”) göstermek istiyorsan, Django’nun `timesince` filtresini kullanabilirsin.
✅ Basit kullanım:
“`django
{{ post.created_at|timesince }} önce
“`
Bu, örneğin şöyle bir çıktı verir:
<
h2>“`
3 saat önce
“`
</h2>
<h3>🔧 Eğer tam saat dilimini istiyorsan (örn. “3 saat, 25 dakika önce”):</h3>
“`django
{{ post.created_at|timesince }} önce
“`
Bu zaten saat + dakika gibi detaylı gösterecektir, ama daha sade hale getirmek istersen özel filtre yazabiliriz.
⏳ Alternatif: `naturaltime` filtresi (daha doğal anlatım)
`naturaltime` daha “doğal” bir görünüm sağlar (örn: “an instant ago”, “yesterday”). Bunun için önce `humanize` kullanman gerekir:
1. Template’in en başında şunu ekle:
“`python
{% load humanize %}
“`
2. Kullanım:
<
h2>“`python
{{ post.created_at|naturaltime }}
“`
</h2>
<h3>🔁 Örnek Tam Template Parçası:</h3>
<h2>“`python
{% load humanize %}
Yayınlanma: {{ post.created_at|naturaltime }}
“`
⚠️ Not:
– `naturaltime` kullanabilmek için `USE_L10N = True` ve `django.contrib.humanize` app’in `INSTALLED_APPS` içinde olması gerekir.
DateTime sadece Gun Ay Yil Gostermek
Çözüm:
“`django
{{ post.created_at|date:"d M Y" }}
“`
Açıklama:
– `d` → Gün (01-31)
– `M` → Ayın kısa adı (Jan, Feb, Mar vs.)
– `Y` → 4 basamaklı yıl (2025 gibi)
Alternatif formatlar:
– `{{ post.created_at|date:”d.m.Y” }}` → `14.06.2025`
– `{{ post.created_at|date:”d F Y” }}` → `14 June 2025`
– `{{ post.created_at|date:”j F Y” }}` → `14 June 2025` (önünde sıfır olmayan gün)
Türkçe ay isimleri istiyorsan:
1. `settings.py` dosyanda `LANGUAGE_CODE = ‘tr’` olmalı.
- Ayrıca locale’nin sistemde kurulu olması gerekir (
tr_TR.UTF-8gibi).