{% block title %}django-liveops demo{% endblock %}
{% block content %}{% endblock %}
{# No end-of-run navigation: the result/error/cancelled fragment is swapped #}
{# into #op-result live over the WebSocket, so the finished state appears in #}
{# place — no full-page reload. get_success_url() redirects are handled by #}
{# liveops.js itself. #}