Opened 6 hours ago
Closed 73 minutes ago
#36028 closed New feature (wontfix)
Add option to choose a specific template engine for Django Admin
Reported by: | Foucauld Degeorges | Owned by: | |
---|---|---|---|
Component: | contrib.admin | Version: | 5.1 |
Severity: | Normal | Keywords: | template engine |
Cc: | Adam Johnson | Triage Stage: | Unreviewed |
Has patch: | yes | Needs documentation: | no |
Needs tests: | no | Patch needs improvement: | no |
Easy pickings: | no | UI/UX: | no |
Description (last modified by )
Context:
We have two template engines in our app - one that is permissive with invalid variables (e.g. accessing a property on None), the other one raises on invalid variables.
Django Admin requires the permissive one as it makes use of the fallback mechanic on invalid variables.
But we prefer for all our other renders (views, emails, PDFs) to be strict on invalid variables. So we want our strict template engine to be the default one, and specify a custom one for the admin.
The idea would be an optional property on AdminSite
named template_engine
, that sets the using
argument of all TemplateResponses
returned by admin views.
Change History (4)
comment:1 by , 6 hours ago
Keywords: | template engine added |
---|
comment:2 by , 6 hours ago
Summary: | Add option to choose a template engine → Add option to choose a specific template engine for Django Admin |
---|
comment:3 by , 5 hours ago
Description: | modified (diff) |
---|---|
Has patch: | set |
comment:4 by , 73 minutes ago
Cc: | added |
---|---|
Resolution: | → wontfix |
Status: | new → closed |
Hello Foucauld Degeorges! Thank you for your report and interest in making Django better.
The new feature that you are proposing seems a very specific need arising from a niche use case. I don't think this applies to the broader ecosystem, and Django is a framework designed to offer robust and accurate solutions for common scenarios.
There are posts from, for example, Adam Johnson about being verbose and selective about missing variables in templates, without resorting to multiple engines. See for example:
https://adamj.eu/tech/2022/03/30/how-to-make-django-error-for-undefined-template-variables/
https://adamj.eu/tech/2023/08/09/django-perils-string-if-invalid/
Given the above, I'll close the ticket accordingly, but if you disagree, you can consider starting a new conversation on the Django Forum, where you'll reach a wider audience and likely get extra feedback. More information in the documented guidelines for requesting features.