I agree. There would be other things I would do different as well, for example:  the context.update(kwargs) updates the context you set in the local scope of get_context_data with what you input in kwargs, which I would turn the other way around (first do a call to super then overwrite context data with what is defined in the local scope). But I tried to keep thins in line with the rest of the example. And just have it work.