Вы можете просто поместить другую переменную вместо постоянной строки, например:
{{ value|default:backup_var }}
Я только что проверил, все работает отлично. Вот мой кусок шаблона:
<i>{{ my_var|default:user.username}}</i>
Я не определил my_var
, поэтому он оценивается как:
<i>admin</i>
Подводя итог, парсер django принимает не только постоянные значения, но и переменные в качестве параметров для фильтров. Но не выражения (я не мог понять, как разобрать мое выражение. Но если вам это нужно, вы всегда можете использовать {% with var=expr %} ... {% endwith %}
для сложных ситуаций)