Do not fail invalid template variables with default filter#922
Open
jcushman wants to merge 1 commit intopytest-dev:mainfrom
Open
Do not fail invalid template variables with default filter#922jcushman wants to merge 1 commit intopytest-dev:mainfrom
jcushman wants to merge 1 commit intopytest-dev:mainfrom
Conversation
10bc05f to
c48b03a
Compare
c48b03a to
826be76
Compare
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.
As proposed in #471, here is an update to
--fail-on-template-varsthat causes missing template variables to be ignored if they use thedefaultfilter, like{{ does_not_exist|default:"ok" }}.This is a common and documented idiom in Django, so
--fail-on-template-varsis more useful if it doesn't fail in that situation. I most recently ran into this because the django-pipeline package uses{{ media|default:"all" }}in one of its templates without definingmedia, so--fail-on-template-varsis currently incompatible with django-pipeline.Another common example would be a view like
render('my_page.html')with the base template<title>{{ title|default:"My Site" }}</title>. It's not helpful to require each page that doesn't override title to be called asrender('my_page.html', {'title': None})-- that's the point of providing a default.@codingjoe seemed unsure how messy this would be to implement, so I thought it might be useful to see an implementation.