Python&Django проблема с Bootstrap-ом

Пикод

Новичок
Пользователь
Май 21, 2021
7
0
1
Добрый лень! Только недавно начал изучения Python&Django и столкнулся с проблемой . На проект включен bootstrap и статик css.Основную таблице сделал с помощью bootstrap. Теперь когда добавляю "товар" в таблицу он вниз уходит и разделяется(на картинке показано 3). Думаю проблема с bootstrap-ом. Можете подсказать как решить проблему.
layout.html
HTML:
{% load static %}
<!doctype html>
<html lang="ru">
<head>
    <meta charset="UTF-8">
    <meta name="viewport"
          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>{% block title %}{% endblock %}</title>
    <link rel="stylesheet" href="{% static 'main/css/main.css' %}">
    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
    <script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js" integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1" crossorigin="anonymous"></script>
    <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous"></script>
    <script src="{% static 'main/js/main.js' %}"></script>
</head>
<body>
    <nav class="navbar navbar-expand-md navbar-light bg-white py-3 shadow-sm">
        <div class="container-fluid">
          <a href="{% url 'mainhome' %}" class="navbar-brand font-weight-bold">Учет ТМЦ</a>
        <button type="button" data-toggle="collapse" data-target="#navbarContent" aria-controls="navbars" aria-expanded="false" aria-label="Toggle navigation" class="navbar-toggler">
          <span class="navbar-toggler-icon"></span>
        </button>
        <div id="navbarContent" class="collapse navbar-collapse">
            <ul class="navbar-nav mr-auto">
              <li class="nav-item dropdown">
                <a href="#" data-toggle="dropdown" class="nav-link dropdown-toggle">ТМЦ</a>
                <ul class="dropdown-menu">
                  <li class="dropdown-submenu">
                    <a href="#" role="button" data-toggle="dropdown" class="dropdown-item dropdown-toggle">Приход</a>
                    <ul class="dropdown-menu">
                      <li><a href="{% url 'prixodosnovnisred' %}" class="dropdown-item">Основные средства</a></li>
                      <li><a href="{% url 'prixodrasxodniemat' %}" class="dropdown-item">Расходные материалы</a></li>
                      <li><a href="{% url 'prixodvse' %}" class="dropdown-item">Все</a></li>
                    </ul>
                  </li>
                  <li class="dropdown-submenu">
                    <a href="#" role="button" data-toggle="dropdown" class="dropdown-item dropdown-toggle">Списания</a>
                    <ul class="dropdown-menu">
                      <li><a href="{% url 'spisanieosnovsred' %}" class="dropdown-item">Основные средства</a></li>
                      <li><a href="{% url 'spisanierasxmat' %}" class="dropdown-item">Расходные материалы</a></li>
                      <li><a href="{% url 'spisanievse' %}" class="dropdown-item">Все</a></li>
                    </ul>
                  </li>
                  <li class="dropdown-submenu">
                    <a href="#" role="button" data-toggle="dropdown" class="dropdown-item dropdown-toggle">Утилизация</a>
                    <ul class="dropdown-menu">
                      <li><a href="{% url 'utilosnovniesred' %}" class="dropdown-item">Основные средства</a></li>
                      <li><a href="{% url 'utilrasxmat' %}" class="dropdown-item">Расходные материалы</a></li>
                      <li><a href="{% url 'utilvse' %}" class="dropdown-item">Все</a></li>
                    </ul>
                  </li>
                  <a href="{% url 'spisoktmc' %}" class="dropdown-item">Список ТМЦ</a><li>
                  <a href="{% url 'reportsotcheti' %}" class="dropdown-item">Отчеты</a></li>
                </ul>
              </li>
              <li class="nav-item dropdown">
                  <a href="#" data-toggle="dropdown" class="nav-link dropdown-toggle">Настройки</a>
                  <ul class="dropdown-menu">
                    <li><a href="{% url 'cotrudniki' %}" class="dropdown-item">Сотрудники</a></li>
                  </ul>
              <li class="nav-item"><a href="#" class="nav-link">About</a></li>
            </ul>
          </div>
        </div>
    </nav>
    {% block content %}
    {% endblock %}
    </body>
</html>
main.css
CSS:
/*меню ботстрап*/
.dropdown-submenu {
    position: relative;
  }
.dropdown-submenu>.dropdown-menu {
    top: 0;
    left: 100%;
  }


#block_1 { background: #DCDCDC; border: 1px solid #6B6ACD; text-align: center; }

#block_2 { border: 3px solid #808080; }

/*заголовок на главной странице*/
.page-header {
  padding-bottom: 3px;
  margin: 3px 0 3px;
  border-bottom: 1px solid #eee;
  text-align: center;
}

form {
    margin-left:35%;
    font-size: 36px;
    height: 36px;
    width:500px;
    margin-top:20px;
}
.features h1 {
    font-size: 20px;
    text-align:center;
}
main.js
JavaScript:
$(function() {
    $("ul.dropdown-menu [data-toggle='dropdown']").on("click", function(event) {
      event.preventDefault();
      event.stopPropagation();

      //method 1: remove show from sibilings and their children under your first parent

  /*   if (!$(this).next().hasClass('show')) {

            $(this).parents('.dropdown-menu').first().find('.show').removeClass('show');
         }  */


      //method 2: remove show from all siblings of all your parents
      $(this).parents('.dropdown-submenu').siblings().find('.show').removeClass("show");

      $(this).siblings().toggleClass("show");


      //collapse all after nav is closed
      $(this).parents('li.nav-item.dropdown.show').on('hidden.bs.dropdown', function(e) {
        $('.dropdown-submenu .show').removeClass("show");
      });

    });
  });
pri.html страница с таблицой
HTML:
{% extends 'main/layout.html' %}

{% block title %}
    приход Основыне
{% endblock %}

{% block content %}
    <div class="features">
      <h1>Приход </h1>

      {% for el in prixods %}
          <div class="">
                  <a href="{% url 'createprixodosnovsreds' %}"><li><button class="btn btn-info"> Добавить</button></li></a>
                  <table class="table table-striped">
                    <thead class="thead-dark">
                      <tr>
                        <th scope="col">ID</th>
                        <th scope="col">Названия</th>
                        <th scope="col">Инв.номер</th>
                        <th scope="col">Сер.номер</th>
                        <th scope="col">Тип ОС</th>
                        <th scope="col">Пользователь</th>
                        <th scope="col">№ Договора поставщика</th>
                        <th scope="col">ID статуса ТМЦ</th>
                        <th scope="col">Статус записи</th>
                        <th scope="col">ID устройства которому подходит</th>
                        <th scope="col">Дата принятие на учет</th>
                        <th scope="col">Дата создания</th>
                        <th scope="col">Расходные материалы</th>
                        <th scope="col">Автор записи</th>
                      </tr>
                    </thead>
                    <tbody>
                      <tr>
                        <th scope="row">{{ el.id }}</th>
                        <td>{{ el.name }}</td>
                        <td>{{ el.invert_numeric }}</td>
                        <td>{{ el.serial_numeric }}</td>
                        <td></td>
                        <td></td>
                        <td>{{ el.dog_id }}</td>
                        <td>{{ el.tmcstatus_ID }}</td>
                        <td>{{ el.status_row_ID }}</td>
                        <td>{{ el.bastresurs_ID }}</td>
                        <td>{{ el.data_start }}</td>
                        <td>{{ el.data_create }}</td>
                        <td></td>
                        <td>{{ el.avtor }}</td>
                      </tr>
                    </tbody>
                  </table
          </div>
      {% endfor %}
    </div>
{% endblock %}
 
Последнее редактирование:

stud_55

Модератор
Команда форума
Модератор
Апр 3, 2020
1 522
672
113
Можете подсказать как решить проблему
Проблема в том, что в шаблоне вы для каждого элемента в списке создаете полностью всю таблицу, а нужно только одну строку.
Вот исправленный шаблон:
HTML:
{% extends 'main/layout.html' %}
 
{% block title %}
    приход Основыне
{% endblock %}
 
{% block content %}
    <div class="features">
      <h1>Приход основных средств</h1>
      <a href="{% url 'createprixodosnovsreds' %}"><li><button class="btn btn-info"> Добавить</button></li></a>
      <table class="table table-striped">
        <thead class="thead-dark">
          <tr>
            <th scope="col">ID</th>
            <th scope="col">Названия</th>
            <th scope="col">Инв.номер</th>
            <th scope="col">Сер.номер</th>
            <th scope="col">Тип ОС</th>
            <th scope="col">Пользователь</th>
            <th scope="col">№ Договора поставщика</th>
            <th scope="col">ID статуса ТМЦ</th>
            <th scope="col">Статус записи</th>
            <th scope="col">ID устройства которому подходит</th>
            <th scope="col">Дата принятие на учет</th>
            <th scope="col">Дата создания</th>
            <th scope="col">Расходные материалы</th>
            <th scope="col">Автор записи</th>
          </tr>
        </thead>
        <tbody>
      {% for el in prixods %}
        <tr>
          <th scope="row">{{ el.id }}</th>
          <td>{{ el.name }}</td>
          <td>{{ el.invert_numeric }}</td>
          <td>{{ el.serial_numeric }}</td>
          <td></td>
          <td></td>
          <td>{{ el.dog_id }}</td>
          <td>{{ el.tmcstatus_ID }}</td>
          <td>{{ el.status_row_ID }}</td>
          <td>{{ el.bastresurs_ID }}</td>
          <td>{{ el.data_start }}</td>
          <td>{{ el.data_create }}</td>
          <td></td>
          <td>{{ el.avtor }}</td>
        </tr> 
      {% endfor %}
      </tbody>
      </table>
    </div>
{% endblock %}
 
  • Мне нравится
Реакции: Пикод

Пикод

Новичок
Пользователь
Май 21, 2021
7
0
1
Проблема в том, что в шаблоне вы для каждого элемента в списке создаете полностью всю таблицу, а нужно только одну строку.
Вот исправленный шаблон:
HTML:
{% extends 'main/layout.html' %}

{% block title %}
    приход Основыне
{% endblock %}

{% block content %}
    <div class="features">
      <h1>Приход основных средств</h1>
      <a href="{% url 'createprixodosnovsreds' %}"><li><button class="btn btn-info"> Добавить</button></li></a>
      <table class="table table-striped">
        <thead class="thead-dark">
          <tr>
            <th scope="col">ID</th>
            <th scope="col">Названия</th>
            <th scope="col">Инв.номер</th>
            <th scope="col">Сер.номер</th>
            <th scope="col">Тип ОС</th>
            <th scope="col">Пользователь</th>
            <th scope="col">№ Договора поставщика</th>
            <th scope="col">ID статуса ТМЦ</th>
            <th scope="col">Статус записи</th>
            <th scope="col">ID устройства которому подходит</th>
            <th scope="col">Дата принятие на учет</th>
            <th scope="col">Дата создания</th>
            <th scope="col">Расходные материалы</th>
            <th scope="col">Автор записи</th>
          </tr>
        </thead>
        <tbody>
      {% for el in prixods %}
        <tr>
          <th scope="row">{{ el.id }}</th>
          <td>{{ el.name }}</td>
          <td>{{ el.invert_numeric }}</td>
          <td>{{ el.serial_numeric }}</td>
          <td></td>
          <td></td>
          <td>{{ el.dog_id }}</td>
          <td>{{ el.tmcstatus_ID }}</td>
          <td>{{ el.status_row_ID }}</td>
          <td>{{ el.bastresurs_ID }}</td>
          <td>{{ el.data_start }}</td>
          <td>{{ el.data_create }}</td>
          <td></td>
          <td>{{ el.avtor }}</td>
        </tr>
      {% endfor %}
      </tbody>
      </table>
    </div>
{% endblock %}

Спасибо большое! Я думал проблема из за css а оказывается из за невнимательности допустил ошибку.
 

Форум IT Специалистов