I was wondering what is the best way to get the current date in a django application.
Currently I query the python datetime module – but since I need the date all over the place I thought maybe Django already has a buildin function for that.
e.g. I want to filter objects created in the current year so I would do the following:
YEAR = datetime.date.now().year currentData = Data.objects.filter(date__year=YEAR)
Should I define the YEAR
variable in settings.py
or create a function now() or is there a buildin Function for this?
Advertisement
Answer
In templates, there is already a built-in function now
:
Displays the current date and/or time, using a format according to the given string. Such string can contain format specifiers characters as described in the date filter section.
Example:
It is {% now "jS F Y H:i" %}
In django 1.8, you can use it with as
:
{% now "Y" as current_year %} {% blocktrans %}Copyright {{ current_year }}{% endblocktrans %}
In python code, there is no django builtin for date, just use the python datetime.date.now()
to make your own customized function.