J'ai besoin d'utiliser SHORT_DATETIME_FORMAT en vue.
def manage_list(request):
user = User.objects.filter().order_by('date_joined')
usrs = []
for usr in user:
usrs.append({
_('First name'): usr.first_name,
_('Last name'): usr.last_name,
_('Email'): usr.email,
_('Active'): usr.is_active,
_('Superuser'): usr.is_superuser,
_('Staff'): usr.is_staff,
_('Joined date'): usr.date_joined.strftime(SHORT_DATETIME_FORMAT),
})
data = simplejson.dumps(usrs, indent=4)
return HttpResponse(data, mimetype='application/json')
usr.date_joined a un type de "champ date" je pense. Je souhaite formater ces données en fonction des paramètres régionaux Django. donc cette chaîne devrait probablement aider. Je sais qu'il existe un filtre de modèle qui me convient, mais je souhaite formater usr.date_joined in view only - en sauvegardant les paramètres régionaux choisis par Django.
S'il existe d'autres méthodes pour ce faire, veuillez fournir des exemples. à la fin je veux juste avoir une date formatée selon les paramètres régionaux de Django qui ne montre que la date et l'heure, je pense que cette constante devrait faire ce que le nom dit.
Le module Django.utils.formats
est ce que vous recherchez. La seule référence que j'ai pu trouver dans la documentation était dans les notes de publication de Django 1.2 .
N'oubliez pas que la localisation ne fonctionnera que si le paramètre USE_L10N
est True
. Vous pouvez utiliser le format_date comme suit.
from datetime import datetime
from Django.utils import formats
date_joined = datetime.now()
formatted_datetime = formats.date_format(date_joined, "SHORT_DATETIME_FORMAT")
Vous voudrez peut-être essayer d'utiliser Django.utils.dateformat.DateFormat
>>> from datetime import datetime
>>> dt = datetime.now()
>>> from Django.utils.dateformat import DateFormat
>>> from Django.utils.formats import get_format
>>> df = DateFormat(dt)
>>> df.format(get_format('DATE_FORMAT'))
u'April 23, 2013'
>>> df.format('Y-m-d')
u'2013-04-23'
Plus d'informations en utilisant Python:
import Django
help(Django.utils.dateformat)
Pour utiliser le filtre Django date dans une vue, utilisez defaultfilters
, par exemple:
from Django.template import defaultfilters
formatted_date = defaultfilters.date(usr.date_joined, "SHORT_DATETIME_FORMAT")
Utilisez le raccourci localize
.
>>> from Django.utils.formats import localize
>>> from datetime import datetime
>>>
>>> print(datetime.now())
2016-12-18 19:30:35.786818
>>> print(localize(datetime.now()))
18 декабря 2016 г. 19:30
from Django.utils.formats import date_format
date_format(usr.date_joined)