params context variable from TemplateView is inconsistent with other get_context_data implementations
|Reported by:||Preston Holmes||Owned by:||nobody|
|Has patch:||no||Needs documentation:||no|
|Needs tests:||no||Patch needs improvement:||no|
The general pattern of get_context_data is to return a context dictionary where the kwargs passed to the method are used to update the context.
This pattern is true for all classes that implement get_context_data except for TemplateView, which adds all the kwargs as a 'params' item.
This is as documented but is inconsistent and makes it trickier to finish up work on #16074 which requires that all implementations of get_context_data call super.
The cleanest design would be a pattern of:
def get_context_data(self, **kwargs): context = super(.... )(kwargs) # class specific stuff here return context
I propose that the use of a params item be deprecated, removed from the docs, and preserved through deprecation by both updating the context with kwargs, and defining the explicit 'params' item in TemplateView.
Change History (9)
comment:1 Changed 5 years ago by
|Patch needs improvement:||unset|
|Summary:||params context variable is from TemplateView is inconsistent with other get_context_data implementations → params context variable from TemplateView is inconsistent with other get_context_data implementations|