Re: [Django] #34878: Autoreload crashes with FORM_RENDERER="django.forms.renderers.TemplatesSetting". (was: Setting FORM_RENDERER="django.forms.renderers.TemplatesSetting" causes template autoreload to crash)

0 views
Skip to first unread message

Django

unread,
Sep 28, 2023, 2:33:59 AM9/28/23
to django-...@googlegroups.com
#34878: Autoreload crashes with
FORM_RENDERER="django.forms.renderers.TemplatesSetting".
---------------------------------+------------------------------------
Reporter: danjac | Owner: nobody
Type: Bug | Status: new
Component: Template system | Version: 5.0
Severity: Release blocker | Resolution:
Keywords: | Triage Stage: Accepted
Has patch: 0 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
---------------------------------+------------------------------------
Changes (by Mariusz Felisiak):

* cc: Priyank Panchal (added)
* type: Uncategorized => Bug
* severity: Normal => Release blocker
* stage: Unreviewed => Accepted


Comment:

Thanks for the report. Would you like to prepare a patch? (a regression
test is required, sth similar to the
`template_tests.test_autoreloader.TemplateReloadTests.test_form_template_reset_template_change_reset_call`
but with changed `FORM_RENDERER`).
The following works for me:
{{{#!diff
diff --git a/django/template/autoreload.py b/django/template/autoreload.py
index 01dd564da4..b727d64168 100644
--- a/django/template/autoreload.py
+++ b/django/template/autoreload.py
@@ -39,9 +39,9 @@ def reset_loaders():
for loader in backend.engine.template_loaders:
loader.reset()

- backend = get_default_renderer().engine
- if isinstance(backend, DjangoTemplates):
- for loader in backend.engine.template_loaders:
+ renderer = get_default_renderer()
+ if hasattr(renderer, "engine") and isinstance(renderer.engine,
DjangoTemplates):
+ for loader in renderer.engine.engine.template_loaders:
loader.reset()


}}}


Regression in 439242c5943e16dd5a3a68fadac76e5e723eb323.

--
Ticket URL: <https://code.djangoproject.com/ticket/34878#comment:2>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.

Reply all
Reply to author
Forward
0 new messages