Wrap panel process_view requests to allow multiple panels to hook without calling the view multiple times - #204
Closed
theojulienne wants to merge 1 commit into
Closed
Conversation
…hout calling the view multiple times
|
This is essentially true, but I have read the 'process_view' of all panels and they do not execute the view at all. Do you have a test case for that? Otherwise there is no reason to wrap the view function. |
Author
|
ProfilingDebugPanel uses process_view. As soon as you add that panel, views are called twice. Third party panels can also use process_view, and each one that did would call the view a third, fourth, ... time. |
|
Ticket #209 seems to be duplicate of this ticket. |
Contributor
|
I think this has been fixed in c9d3f34. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Currently if a process_view handler in a panel calls the view function and returns something, the output is silently ignored. This means a view can be called multiple times.
This patch wraps each process_view handler up so the view is only ever called once - if any one handler returns something other than None, it is passed on to Django.