2017-02-02 6 views
2

J'ai un projet Django dans lequel j'ai formats.py fichier pour chacun des paramètres régionaux (anglais, français, espagnol, etc.).Format datetime standard local datetime défini par l'utilisateur dans Django

Le fichier formats.py ressemble à ceci:

DATETIME_FORMAT = 'd b Y h:i' 

Maintenant, mon objectif est de définir et de le remplacer par un format 'd b Y h:i' défini par l'utilisateur où je reçois 'h:i' pour aujourd'hui, et 'd b Y h:i' pour les dates qui diffèrent d'aujourd'hui. Est-ce possible dans Django?

J'ai rencontré this post, mais cela ne m'aide pas à définir le FORMAT STANDARD que je pourrais utiliser dans formats/py. Au contraire, il indique comment créer un filtre que je devrais appliquer explicitement dans un modèle pour chaque occurrence de champ datetime.

MISE À JOUR:

Je sais comment définir le format datetime standard settings.py:

FORMAT_MODULE_PATH = [ 
    'android_blend.formats', 
] 

MA QUESTION EST COMMENT DEFINIR UN UTILISATEUR CONDITIONNELLE FORMAT DEFINI où j'ai format différent aujourd'hui et dates autres qu'aujourd'hui.

+0

vous pouvez mentionner la date format standard de temps dans le fichier setting.py –

+0

Veuillez voir la question mise à jour –

+0

Piyush, vous avez collé le lien que j'ai inclus dans la question. La question de l'OP est différente –

Répondre

1

Cela peut aider vous: -

today = datetime.now() 

{% if inputDate == today %} 
    <p>DateHeading: {{ showDate|date:"h:i" }}</p> 

{% if inputDate > today %} 
    <p>DateHeading: {{ showDate|date:"d b Y h:i" }}</p> 
+0

Oui, AFAIK, il n'y a pas d'outil django pour faire de cet endroit de bloc 'if-else' dans un tag pour rendre le code plus SEC –

-1

Vous pouvez configurer une balise de gabarit simple pour mettre en forme cette date en fonction de vos besoins.

Créez un dossier python dans votre application appelée templatetags Inside créer un fichier custom_date_format.py contenu pourrait être

from django import template 
register = template.Library() 

@register.simple_tag(name="custom_date_format") 
def custom_date_format(timestamp, user, **kwargs): 
    if user.type =="option1": 
     return datetime.strftime("%Y%m%d") 
    elsif user.type =="option2": 
     return datetime.strftime("%Y%m%d %H") 
    else: 
     return datetime.strftime("%Y%m%d %m") 

maintenant dans vos modèles, vous pouvez

{% load custom_date_form %} 
{% custom_date_format datetimefield user %} 
+0

merci pour votre réponse. Mais malheureusement, je ne peux pas voir comment cela est lié à la question –