Veritabanında ISO 8601 biçiminde tarihlerim var %Y-%m-%d
. Ancak tarih şablona aktarıldığında şöyle bir şey çıkıyor Oct. 16, 2011
.
Formatı istediğim gibi değiştirebilmemin bir yolu var mı?
Yanıtlar:
Şablonunuzun içinde Django'nun date
filtresini kullanabilirsiniz . Örneğin:
<p>Birthday: {{ birthday|date:"M d, Y" }}</p>
Verir:
Doğum Günü: 29 Ocak 1983
Tarih filtresi belgelerinde daha fazla biçimlendirme örneği .
İkisini de ayarla DATE_FORMAT
veUSE_L10N
Django 1.4.1'de tüm site için değişiklik yapmak için şunu ekleyin:
DATE_FORMAT = "Y-m-d"
sizin için settings.py
dosya ve düzenlemek:
USE_L10N = False
l10n geçersiz kıldıklarından beri DATE_FORMAT
Bu, şu adreste belgelenmiştir: https://docs.djangoproject.com/en/dev/ref/settings/#date-format
Sadece şunu kullan:
{{you_date_field|date:'Y-m-d'}}
Bu, 2016-10-16 gibi bir şey gösterecek . Formatı istediğiniz gibi kullanabilirsiniz.
Views.py dosyasında tarih formatını değiştirmek ve ardından bunu şablona atamak için.
# get the object details
home = Home.objects.get(home_id=homeid)
# get the start date
_startDate = home.home_startdate.strftime('%m/%d/%Y')
# assign it to template
return render_to_response('showme.html'
{'home_startdate':_startDate},
context_instance=RequestContext(request) )
İhtiyacınız olan şey bir tarih şablonu filtresidir .
Örneğin:
<td>Joined {{user.date_created|date:"F Y" }}<td>
Bu geri dönüyor Joined December 2018
Kısa tarih ve saat göstermeniz gerekiyorsa (11/08/2018 03:23 am) bunu şu şekilde yapabilirsiniz:
{{your_date_field|date:"SHORT_DATE_FORMAT"}} {{your_date_field|time:"h:i a"}}
Bu etiket için ayrıntılar burada ve burada verilen biçime göre tarihler hakkında daha fazla bilgi
Misal:
<small class="text-muted">Last updated: {{your_date_field|date:"SHORT_DATE_FORMAT"}} {{your_date_field|time:"h:i a"}}</small>