Expand documentation, add prepare_form method, add ignore_buttons argument#16
Open
davidjb wants to merge 4 commits intoPylons:masterfrom
Open
Expand documentation, add prepare_form method, add ignore_buttons argument#16davidjb wants to merge 4 commits intoPylons:masterfrom
davidjb wants to merge 4 commits intoPylons:masterfrom
Conversation
This allows button handlers to render (and modify) a view before returning a response to the client.
Contributor
Author
|
Rebased on latest changes in this repo so it can be automatically merged. Is this package still being maintained? If help is required, I'm happy to be further involved. |
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.
This pull request allows the possibility of instantiating the FormView as a means to obtaining an instance of the form it will create. This is useful in the situation where you have a dedicated FormView for a form and want to re-use the given form (and just the form) on another view. My specific use-case is rendering the form to display in multiple locations, but only process input on one view.
Rendering the entire FormView can be costly and likely will prove problematic as the call method checks things like the request's POST, etc. This hook allows you to instead get just the form instance out via something like:
So, this means that you are able to render or do something else with the form, and don't need to re-define the form configuration.
The
ignore_buttonsargument for the FormView.call method allows button handler methods to be able to re-render the view (eg by callingself(ignore_buttons=True)within asave_successmethod) and change the response before it gets returned to the user. Previously, trying to do this resulted in infinite recursion since the button handler would effectively call itself.This also expands on documentation within pyramid_deform concerning the CSRF schema and other aspects.