Varsayılan Django tarih şablonu formatını nasıl değiştirebilirim?


100

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:



276

Şablonunuzun içinde Django'nun datefiltresini 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 .


Sanırım bu yalnızca tarih bir datetime nesnesi olarak sağlanırsa işe yarar. Ya görünümden geçen bir dizgeyse?
Mohammed Shareef C

3
Tarih / saat içeren rasgele bir dize için, muhtemelen görünüm kodunda bir python tarih saatine ayrıştırırım. (Ya da mümkünse daha erken - bu tarih dizesinin koduma ilk ulaştığı her yerde.) Ancak, Django şablonlarınıza tarih saatlerini geçirmek için dizeleri gerçekten kullanmak istiyorsanız, bu yanıt yararlı görünüyor.
medmunds

Şablon dosyasında kullanmak için yukarıdaki örnek mükemmel.
Vinod Patidar


20

Sadece şunu kullan:

{{you_date_field|date:'Y-m-d'}}

Bu, 2016-10-16 gibi bir şey gösterecek . Formatı istediğiniz gibi kullanabilirsiniz.


8

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) )  


6

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>
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.