Estoy mostrando una fecha en una plantilla de Django, y tengo una función de python que formatea la fecha de hoy para mí y la pasa a mi plantilla.
# function [format example: Wednesday 01 February 10:00:00] def today(): date_now = datetime.now() day_number = date_now.strftime("%d") month_name = date_now.strftime("%B") day_name = date_now.strftime("%A") time = date_now.strftime("%X") date = "{} {} {} {}".format(day_name, day_number, month_name, time) return date # view def myview(request): the_date_today = today() context = { "the_date_today": the_date_today, } return render(request, "template.html", context) # template <h1>{{ the_date_today }}</h1>Acabo de encontrar una manera de hacer esto solo con las etiquetas de plantilla de Django.
# view def myview(request): the_date_today = datetime.now() context = { "the_date_today": the_date_today, } return render(request, "template.html", context) # template <h1>{{ the_date_today|date:"lm FH:i" }}</h1>¿Cuál es el mejor enfoque para esto? Es mucho menos código usar solo filtros de plantilla, pero ¿hace esto algo más lento?
El método de la plantilla es mejor. No va a ser más lento.
Si más adelante necesita modificar el formato de visualización, puede hacerlo simplemente modificando la plantilla, no el código.
Además, ni siquiera necesita pasar el valor de the_date_today a la plantilla porque puede llamar now en la plantilla:
<h1>{% now "ld FH:i" %}</h1>