params context variable from TemplateView is inconsistent with other get_context_data implementations
|Reported by:||ptone||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 4 years ago by ptone
- Needs documentation unset
- Needs tests unset
- Patch needs improvement unset
- Summary changed from params context variable is from TemplateView is inconsistent with other get_context_data implementations to params context variable from TemplateView is inconsistent with other get_context_data implementations
comment:6 Changed 3 years ago by Andrew Godwin <andrew@…>
- Resolution set to fixed
- Status changed from new to closed