Невидимые поля формы в шаблоне Django

Пытаюсь вывести разные формы на вкладках одной страницы, используя Tabs из Bootstrap5. Первая форма на первой активной вкладке отображается и работает, но вторая форма на соседней вкладке остаётся невидимой, хотя её присутствие на странице очевидно.

введите сюда описание изображениявведите сюда описание изображения

Обе формы передаются и обрабатываются в одном контроллере:

def add(request):
    template = 'base.html'
    page_title = 'Добавить информацию'
    contact_form = CompanyForm(request.POST or None,
                               files=request.FILES or None, )
    if contact_form.is_valid():
        contact = contact_form.save(commit=False)
        contact.save()
        return redirect('spare_parts:main')
    company_form = CompanyForm(request.POST or None,
                               files=request.FILES or None,)
    if company_form.is_valid():
        company = company_form.save(commit=False)
        company.save()
        return redirect('spare_parts:main')
    context = {
        'page_title': page_title,
        'company_form': company_form,
        'contact_form': contact_form,
    }
return render(request, template, context)

Код шаблона:

<div class="nav nav-tabs" id="nav-tab" role="tablist">
  <button class="nav-link active" id="nav-company-tab" data-bs-toggle="tab"
          data-bs-target="#nav-company" type="button" role="tab"
          aria-controls="nav-company" aria-selected="true"
  >компания</button>
  <button class="nav-link" id="nav-contact-tab" data-bs-toggle="tab"
          data-bs-target="#nav-contact" type="button" role="tab"
          aria-controls="nav-contact" aria-selected="false"
  >контакт</button>
</div>
{% with request.resolver_match.view_name as view_name %}
<div class="tab-content">
  <div class="tab-pane fade show active" id="nav-company">
    {% if view_name == 'spare_parts:main' %}
      {% include 'get/get_companies.html' %}
    {% elif view_name == 'spare_parts:add' %}
      {% include 'forms/add_company.html' %}
    {% endif %}
  </div>
  <div class="tab-pane fade" id="nav-contact">
    {% if view_name == 'spare_parts:main' %}
      {% include 'get/get_contacts.html' %}
    {% elif view_name == 'spare_parts:add' %}
      {% include 'forms/add_contact.html' %}
    {% endif %}
  </div>
</div>
{% endwith %}

Хотелось бы понять что я делаю не так? Либо мой подход к реализации нужно менять, либо какая-то ошибка в рендере страницы?

upd_0: введите сюда описание изображения

upd_1: код шаблона добавления контакта, код добавления компании отличается только названием переменной в шаблоне: company_form

{% load user_filters %}
<div class="tab-pane fade" id="nav-profile" role="tabpanel"
     aria-labelledby="nav-profile-tab">
  <form method="post">
    {% csrf_token %}
    {% for field in contact_form %}
      <div class="form-group col-md-5">
        <label>
          {{ field.label }}
        </label>
        {{ field|addclass:'form-control' }}
      </div>
    {% endfor %}
    <div class="d-flex justify-content-start p-2">
      <button type="submit" class="btn btn-primary">
          Сохранить
      </button>
    </div>
  </form>
</div>


Ответы (1 шт):

Автор решения: Sergey Tatarincev

Как я и подозревал, проблема в подключаемом шаблоне. лишние дивы с бутстраповыми классами, скрывающими их. Уберите в подключаемых шаблонах внешние div и все наладится. Демонстрация вашей пробоемы

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-EVSTQN3/azprG1Anm3QDgpJLIm9Nao0Yz1ztcQTwFspd3yD65VohhpuuCOmLASjC" crossorigin="anonymous">
</head>
<body>
    <script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js" integrity="sha384-MrcW6ZMFYlzcLA8Nl+NtUVF0sA7MsXsP1UyJoMp4YLEuNSfAP+JcXn/tWtIaxVXM" crossorigin="anonymous"></script>


<div class="nav nav-tabs" id="nav-tab" role="tablist">
  <button class="nav-link active" id="nav-company-tab" data-bs-toggle="tab" data-bs-target="#nav-company" type="button" role="tab" aria-controls="nav-company" aria-selected="true">компания</button>
  <button class="nav-link" id="nav-contact-tab" data-bs-toggle="tab" data-bs-target="#nav-contact" type="button" role="tab" aria-controls="nav-contact" aria-selected="false">контакт</button>
</div>
<div class="tab-content">
  <div class="tab-pane fade show active" id="nav-company">
       Этот таб вы увидите
  </div>
  <div class="tab-pane fade" id="nav-contact" role="tabpanel" aria-labelledby="nav-profile-tab">
    <div class="tab-pane fade" id="nav-contact-child">
      А этот останется скрытым
    </div>
  </div>
  
</div>
<input type="button" value="хочу видеть второй таб" onclick="document.getElementById('nav-contact-child').className='';">

</body>
</html>

→ Ссылка