Created_at alani humanize

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ı.

  1. Ayrıca locale’nin sistemde kurulu olması gerekir (tr_TR.UTF-8 gibi).

Leave a Reply

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir