Saturday, December 28, 2013

Re: Accessing attributes of the current view in Django middleware?



On Saturday, December 28, 2013 6:44:16 PM UTC, alk wrote:

On Saturday, December 28, 2013 8:19:22 AM UTC-5, thinkin...@gmail.com wrote:
Hey,

Try along these lines:

    def process_view(self, request, view_func, view_args, view_kwargs):
        view = get_class(view_func.__module__, view_func.__name__)
        view.my_attribute

Heh, yeah, this seems to be the only way.  I was kind of headed in this direction but I'm fairly new to Django/python, and to programming in general.  Is this safe/efficient?  I guess this just involves importing the view class once per request -- doesn't seem like a big deal but would love some feedback.

Thanks again!

Is it safe: well, as far as I can tell there is no reason it should not be. In terms of efficiency, it's always a little bit an overhead to every request, no matter you need it or not. Have a look at this code:

https://github.com/thinkingpotato/django-permissionsx/blob/v0.0.6/permissionsx/middleware.py

There's some caching done etc. And it's been tested in production. I had to retreat from that solution for a few reasons (one of them was making the permissions available for other apps or frameworks), but I've spent several hours looking for a better approach with not much success.

Good luck,
R.

--
You received this message because you are subscribed to the Google Groups "Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to django-users+unsubscribe@googlegroups.com.
To post to this group, send email to django-users@googlegroups.com.
Visit this group at http://groups.google.com/group/django-users.
To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/315d88d7-a3dc-4d72-8135-720ae8046bc5%40googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

No comments:

Post a Comment