2017-03-05 4 views
1

Ich arbeite an einem TemplateTag in Django, die für einige Datums- und Zeitformatierung sorgen sollte.Lokalisieren Sie Datum Zeiten in einem Django TemplateTag

Ich möchte das Datum auf Niederländisch zeigen, aber es kommt immer wieder auf Englisch.

von django Importvorlage

register = template.Library()

@register.filter() 
def get_date_string(event): 
    if event.date_type == 1: 
     retval = event.date_1.strftime("%-d %B %Y") 
     if event.date_1_starttime is not None: 
      retval += " van " + event.date_1_starttime.strftime("%H:%M") 
     if event.date_1_endtime is not None: 
      retval += " tot " + event.date_1_endtime.strftime("%H:%M") 

     return retval 

Nach dem Python documentation%B sollte einen lokalisierten Monat vollständigen Namen.

In der Vorlage verwende ich nur:

{{ object|get_date_string }} 

Ich hoffe jemand mir dabei helfen kann.

+0

Können Sie Ihre 'settings.py' Datei anhängen? Ich denke, dass es aufgrund der LANGUAGE-Einstellung immer wieder in Englisch ankommt – Marco

Antwort

0

Dank this answer konnte ich Dinge zum Laufen bringen.

Dies ist meine letzte Lösung:

from django import template 
from django.template.defaultfilters import date as _date 

register = template.Library() 


@register.filter() 
def get_date_string(event): 
    if event.date_type == 1: 
     retval = _date(event.date_1) 
     if event.date_1_starttime is not None: 
      retval += " vanaf " + event.date_1_starttime.strftime("%H:%M") 
     if event.date_1_endtime is not None: 
      retval += " tot " + event.date_1_endtime.strftime("%H:%M") 

     return retval 

Alles, was ich tat, war den Django Datumsfilter verwenden, um die Datumsformatierung für mich zu tun.

Verwandte Themen