Ну, вопрос в том, почему вы используете формат для начала. Разве вы не собираетесь выдвинуть это в шаблон? Я имею в виду, что если вы экранируете что-то в своем шаблоне (используя тег шаблона), вы просто передаете строку через эту escape-функцию.
Может быть, это не то, что вы ищете, но вы просто не сделаете,
"Hello, {user.first_name}!".format(user=django.utils.html.escape(my_user))
Если вы хотели избежать всех своих аргументов, и вы были уверены, что они будут
строки,
def foo(**kwargs):
for key,val in kwargs.iteritems():
kwargs[key] = django.utils.html.escape(val)
...
Возможно, вы могли бы сделать что-то более сумасшедшее, например,
def foo(**kwargs):
kwargs = dict((key, val) for key,val in izip(kwargs.iterkeys(), \
map(django.utils.htmls.escape, kwargs.itervalues())))
# OR if you use Python 3
kwargs = {key:django.utils.htmls.escape(val) for key, val in kwargs.items()}
если ты хотел, чтобы что-то получилось CRAZY!