Opened 19 minutes ago
#37118 new New feature
Support variables in the {% now %} template tag
| Reported by: | Lily | Owned by: | |
|---|---|---|---|
| Component: | Template system | Version: | 6.0 |
| Severity: | Normal | Keywords: | |
| Cc: | Triage Stage: | Unreviewed | |
| Has patch: | no | Needs documentation: | no |
| Needs tests: | no | Patch needs improvement: | no |
| Easy pickings: | no | UI/UX: | no |
Description
This was discussed and accepted in https://github.com/django/new-features/issues/115.
Allow passing a variable from the template context into the {% now %} template tag to allow dynamically choosing the formatting.
Django's `{% now %}` template tag currently only supports a hardcoded string format defined directly in the template, or one of a small number of specific settings. By supporting template variables, it would be possible to change the format dynamically (for example, based on a user's locale).
As I explain in my blog post, the now tag has some very weird behaviour caused by assuming the format will always be a string. By expanding to support variables, we can also clean up these weird edge-cases by raising a TemplateSyntaxError.
Several other template tags support variables, so it should be fairly easy to reuse their implementation of this.