<p dir="auto">Consider example.<br>
I have default edit_form.html.twig (for example for crud operations in admin). But I need to customize form for special case. I created custom_edit_form.html.twig and trying to redefine form_widget block. But this example doesn't work -  I still see whole form, instead of 'blablabla'.<br>
Is it bug?</p>
<p dir="auto">custom_edit_form.html.twig</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="{% extends '::edit_form.html.twig' %}

{% form_theme form _self %}

{% block form_widget %}
blablabla
{% endblock %}"><pre class="notranslate"><code class="notranslate">{% extends '::edit_form.html.twig' %}

{% form_theme form _self %}

{% block form_widget %}
blablabla
{% endblock %}
</code></pre></div>
<p dir="auto">edit_form.html.twig</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="{% extends '::base.html.twig' %}

{% form_theme form 'form_div_layout.html.twig' %}

{% block body %}
    {{ form_widget(form) }}
{% endblock %}"><pre class="notranslate"><code class="notranslate">{% extends '::base.html.twig' %}

{% form_theme form 'form_div_layout.html.twig' %}

{% block body %}
    {{ form_widget(form) }}
{% endblock %}
</code></pre></div>
<p dir="auto">base.html.twig:</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="{% block body %}{% endblock %}"><pre class="notranslate"><code class="notranslate">{% block body %}{% endblock %}
</code></pre></div>
<p dir="auto">When extending a template, if the parent uses the form_theme tag and the child too, the form template wil always be the one defined in the parent template.</p>
<div class="highlight highlight-text-html-django notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="{# parent.twig #}
{% form_theme form _self %}
{% block type_widget %}
    parent
{% endblock %}"><pre class="notranslate"><span class="pl-c">{# parent.twig #}</span>
<span class="pl-e">{%</span> <span class="pl-s">form_theme</span> <span class="pl-s">form</span> <span class="pl-s">_self</span> <span class="pl-e">%}</span>
<span class="pl-e">{%</span> <span class="pl-k">block</span> <span class="pl-s">type_widget</span> <span class="pl-e">%}</span>
    parent
<span class="pl-e">{%</span> <span class="pl-k">endblock</span> <span class="pl-e">%}</span></pre></div>
<div class="highlight highlight-text-html-django notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="{# child.twig #}
{% extends 'parent.twig' %}

{% form_theme form _self %}
{% block type_widget %}
    child
{% endblock %}"><pre class="notranslate"><span class="pl-c">{# child.twig #}</span>
<span class="pl-e">{%</span> <span class="pl-k">extends</span> <span class="pl-s">'parent.twig'</span> <span class="pl-e">%}</span>

<span class="pl-e">{%</span> <span class="pl-s">form_theme</span> <span class="pl-s">form</span> <span class="pl-s">_self</span> <span class="pl-e">%}</span>
<span class="pl-e">{%</span> <span class="pl-k">block</span> <span class="pl-s">type_widget</span> <span class="pl-e">%}</span>
    child
<span class="pl-e">{%</span> <span class="pl-k">endblock</span> <span class="pl-e">%}</span></pre></div>
<p dir="auto">Is it expected? And is there a workaround for this?</p>