Either calling view(template=template) should either result in an error (due to template not being a view restriction), or View's implicit __str__ behavior should not act the way that it does.
Current Behavior
Calling a View as a function currently leads to some unexpected behavior, when given an argument other than a filter restriction. For example, {{view.previous(template='foo')}} just results in the same result as view.previous.link(), because view.previous(template='foo') is functionally the same as view.previous (since template is not a filter parameter), and then the resulting View object gets __str__ called on it.
Possible Solution
Unexpected filter arguments should result in an error, probably.
A possible means of implementing this change would be to change queries.build_query to raise a RangeError for an unknown query parameter, which in turn could be done by changing the logic there to be a foreach that maps to a bunch of lambdas that refine the query (or modify local state for the final filter parameter)
Expected Behavior
Either calling
view(template=template)
should either result in an error (due totemplate
not being a view restriction), orView
's implicit__str__
behavior should not act the way that it does.Current Behavior
Calling a
View
as a function currently leads to some unexpected behavior, when given an argument other than a filter restriction. For example,{{view.previous(template='foo')}}
just results in the same result asview.previous.link()
, becauseview.previous(template='foo')
is functionally the same asview.previous
(sincetemplate
is not a filter parameter), and then the resulting View object gets__str__
called on it.Possible Solution
Unexpected filter arguments should result in an error, probably.
A possible means of implementing this change would be to change
queries.build_query
to raise aRangeError
for an unknown query parameter, which in turn could be done by changing the logic there to be a foreach that maps to a bunch of lambdas that refine the query (or modify local state for the final filter parameter)Steps to Reproduce (for bugs)
1. 2. 3. 4.
Context