Skip to content

Clean up view-as-call-site #506

@fluffy-critter

Description

@fluffy-critter

Expected Behavior

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)

Steps to Reproduce (for bugs)

Context

Metadata

Metadata

Assignees

No one assigned

    Labels

    documentationThings that will improve the understandability and usability of the system for othersenhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions