Изменить систему шаблонов Django, чтобы делать то, что вы хотите, было бы чрезвычайно сложно;если вы хотите сделать это, начните с полного понимания модуля django.template .Честно говоря, я бы не рекомендовал создавать теги, которые использовали бы другой способ обработки параметров, чем все другие существующие теги, - это могло бы сбить с толку пользователей, которым приходится работать с тегами.
Но еслиВ любом случае вы настаиваете на этом, вам просто нужно, чтобы ваш собственный тег шаблона анализировал его параметры по отдельности, чтобы обеспечить обслуживание.Что-то вроде этого должно сработать:
def fixit( argument ):
"""Strip off any leading 'word=' noise words from argument"""
result = argument.split('=')[-1]
if result[0] == '"' and result[-1] == '"':
result = result[1:-2]
return result
@register.inclusion_tag('bouts/fighter/_fighter_bout_list.html')
def fighter_bout_list(list, header, fighter, has, empty):
return {
'list' : fixit(list),
'header': fixit(header),
'fighter': fixit(fighter),
'has' : fixit(has),
'empty' : fixit(empty),
}
Отредактировано
Этот код все еще позиционный - я не предлагаю использовать это, чтобы сделать истинуключевые аргументы.Я добавил код, чтобы справиться с наличием кавычек, но я все еще не проверял это - это всего лишь предложение.
Опять же, я настоятельно рекомендую против такого подхода.Смысл тега шаблона заключается в том, чтобы сделать что-то, что не может быть легко сделано с существующими тегами шаблона, но он все еще является частью шаблона и действительно должен быть инструментом для человека, достаточно технического, чтобы использовать редактор HTML.Я пытаюсь представить пример использования предложенного вами тега, в котором он будет использоваться несколько раз на сайте.Небольшая документация и пример были бы намного дешевле, чем пытаться реализовать аргументы ключевого слова для тега шаблона в системе, которая не использует аргументы ключевого слова.