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.