#33134: Circular contexts when rendering Form with BoundFields.
----------------------------------+---------------------------------------
Reporter: Mariusz Felisiak | Owner: David Smith
Type: Bug | Status: assigned
Component: Forms | Version: 4.0
Severity: Release blocker | Resolution:
Keywords: | Triage Stage: Unreviewed
Has patch: 0 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
----------------------------------+---------------------------------------
Comment (by Keryn Knight):
FWIW, the likely 'fix' in DjDT may be to add the new template path's
common prefix to `SKIP_TEMPLATE_PREFIXES` which was specifically
introduced when template based rendering was added for widgets, because it
made walking the contexts ''super'' slow. I've not seen what DjDT's
context output looks like with the new templates being used, but if it's
massive/slow someone will almost certainly add the prefix.
`saferepr` was used over `repr` as a middle ground in case of recursive
objects being encountered, which obviously this sort of is, but also
isn't, alas. Using `repr` was also specifically to avoid `__str__` getting
called, because that forces a render which may cause side effects like
queries being run (ie: in an ideal world your `__repr__` should never call
`__str__`).
From Django's end, we ''could'' reduce the available context to that which
is currently necessary to render the label_tag (and any others that might
be an issue?) and let "new" context keys/values be requested as cases
might be made for them?
--
Ticket URL: <https://code.djangoproject.com/ticket/33134#comment:4>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.
--
You received this message because you are subscribed to the Google Groups
"Django updates" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/django-updates/065.19b1cf17d2e945d197a74f400d05106f%40djangoproject.com.