Can’t you already override existing values? Like if you have two context processors that both return a certain key, the last one wins?
That being said I find the statement “so that they can change values and not just override them” logically weird. Overriding is functionally the same as changing no? The only thing this change would do would be to enable a downstream context processor to dynamically react to behavior set by a previous context processor. And if you want that, why not just call the other context processor explicitly like:
def third_party_context_processor(request):
return {‘foo’: something}
def my_context_processor(requesst):
x = third_party_context_processor(request)
if x[‘foo’] == 3:
x[‘foo’] = 8
return foo
And then remove third_party_context_processor from your settings, and only have my_context_processor in there. This seems easier to follow to me.
In this specific case I moved the specific flag to be global, but my initial thought was if were possible for the view or the context processor to update the value of “feature_flags”.
Hence me finding the ticket. I don’t mind which way the consensus lands, hence the quick post.