{% comment %} row_tag and body_tag become HTML tags directly. The only callers are the four layout templates in this directory, and each passes a fixed literal from a closed set. Never take these from widget.attrs or from submitted data. {% endcomment %} <{{ row_tag }} data-sequence-row data-sequence-field="{{ widget_name }}" data-sequence-index="{{ row.index }}" {% if widget_id %}id="{{ widget_id }}_row_{{ row.index }}"{% endif %} > {% if body_tag %}<{{ body_tag }}>{% endif %} {% include "nestingdolls/sequence/row_content.html" with row=row row_tag=row_tag widget_name=widget_name delete_id=widget_id delete_disabled=delete_disabled only %} {% comment %} The browser script puts this row's remove button here. Without this slot, the script would add the button as a direct child of the row element. In the table layout, that puts a