Jak mogę zmienić domyślny format szablonu daty w Django?


100

Mam dat w formacie ISO 8601 w bazie danych %Y-%m-%d. Jednak kiedy data jest przekazywana do szablonu, to wychodzi jakoś w rodzaju Oct. 16, 2011.

Czy istnieje sposób, w jaki mogę manipulować formatem do dowolnego celu?

Odpowiedzi:



276

W swoim szablonie możesz użyć datefiltru Django . Na przykład:

<p>Birthday: {{ birthday|date:"M d, Y" }}</p>

Daje:

Urodziny: 29 stycznia 1983 r

Więcej przykładów formatowania w dokumentach filtrów daty .


Myślę, że działa to tylko wtedy, gdy data jest podana jako obiekt daty i godziny. A jeśli to tylko ciąg przekazany z widoku?
Mohammed Shareef C,

2
W przypadku dowolnego ciągu zawierającego datę / godzinę prawdopodobnie przeanalizowałbym go na datę i godzinę w języku Python w kodzie widoku. (Lub nawet wcześniej, jeśli to możliwe - gdziekolwiek ten ciąg znaków daty pojawia się po raz pierwszy w moim kodzie.) Ale jeśli naprawdę chcesz używać łańcuchów do przekazywania dat do szablonów Django, ta odpowiedź będzie pomocna.
medmunds

Powyższy przykład doskonały do ​​wykorzystania w pliku szablonu.
Vinod Patidar


20

Po prostu użyj tego:

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

To pokaże coś w stylu 2016-10-16 . Możesz użyć formatu, jak chcesz.


8

Aby zmienić format daty w views.py, a następnie przypisz go do szablonu.

# 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

Jeśli chcesz pokazać krótką datę i godzinę (11/08/2018 03:23 rano), możesz to zrobić w następujący sposób:

{{your_date_field|date:"SHORT_DATE_FORMAT"}} {{your_date_field|time:"h:i a"}}

Szczegóły dotyczące tego tagu tutaj i więcej informacji o datach według podanego formatu tutaj

Przykład:

<small class="text-muted">Last updated: {{your_date_field|date:"SHORT_DATE_FORMAT"}} {{your_date_field|time:"h:i a"}}</small>
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.