#26248: Make current WSGI request instance available in forms.ModelForm
instances.
--------------------------------+--------------------------------------
Reporter: Dmitri-Sintsov | Owner: nobody
Type: New feature | Status: closed
Component: Forms | Version: master
Severity: Normal | Resolution: wontfix
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 Dmitri-Sintsov):
I have "orthogonal" kwargs in urls.py request to views mapping throughout
the code with the same url regex key names: 'project_id', 'profile_id' .
Then I implemented my own context middleware which process_view() checks
for 'project_id' / 'profile_id' of current view kwargs. It also has the
whole "business logic" context class, which tries to load Project /
Profile models from DB by these PK's, then checks current user access
permissions to these model instances, performs additional steps when
necessary.
That saves a lot of repetitive boilerplate code in views where I get ready
loaded and already checked self.request.context with appropriate project
and /or user profile models, instead of loading them over and over. The
trouble is, that sometimes I need to access that self.request.context
instance from ModelForm.clean() method and these forms are used not only
in views and CBV's where it's easy to add self.request to instance of
ModelForm, but also in django.admin, including third-party nested inline
admin.
I will probably have to implement per thread request context storage as
you've suggested. Because anyway I use stable 1.8 LTS, not current working
master (nested inline admin module has some troubles with newer Django
versions).
--
Ticket URL: <https://code.djangoproject.com/ticket/26248#comment:5>
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 post to this group, send email to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/django-updates/072.86d1d2ba8df50ffa4e9ec4c3e0772f6f%40djangoproject.com.
For more options, visit https://groups.google.com/d/optout.