У меня есть такой декоратор:
def region_required(view_func):
def new_view(request, ctx = {}, *args, **kw):
import pdb; pdb.set_trace()
ctx['regions'] = Region.objects.all()
return view_func(request, context=ctx, *args, **kw)
return new_view
Я использую его для украшения функций просмотра.
Сегодня я заметил нечто действительно странное: аргумент ctx (context) иногда содержит данные, относящиеся к последнему HTTP-запросу. Затем я сузил его до этого декоратора и обнаружил, что каким-то образом ctx имеет значение, когда он должен быть {} здесь.
Итак, я установил точку останова и поднялся на один уровень, а потом обнаружил, что вызывающая сторона НЕ передает ему вообще ничего.
Как аргумент может иметь значение, которое не передается ни вызывающим, ни значением по умолчанию?