Django_bootstrap5 ничего не форматирует
Я пытаюсь заставить работать базовое форматирование bootstrap в приложении django, и установил django_bootstrap5 для этого. Однако форматирование не применяется ни к одной из страниц.
Вот различные страницы:
base.html:
<!DOCTYPE html>
{% load django_bootstrap5 %}
<html lang="en">
<head>
<meta charset="UTF-8">
<title>
{% block title %}
{% endblock %}
</title>
</head>
<body>
<div class="container">
{% block body %}
{% endblock %}
</div>
</body>
</html>
Я расширяю это в простой индексной странице:
<!DOCTYPE html>
{% extends 'base.html' %}
{% load django_bootstrap5 %}
{% block title %}
Home
{% endblock %}
{% block body %}
<h1>Hello World</h1>
{% endblock %}
Hello World, однако, не отображается в контейнере.
Это также не работает на странице формы:
<!DOCTYPE html>
{% extends 'base.html' %}
{% load django_bootstrap5 %}
{% block body %}
<div class="container">
<h1>Sign Up</h1>
<form method="POST">
{% csrf_token %}
{% bootstrap_form form %}
<input type="submit" value="Sign Up" class="btn btn-default">
</form>
</div>
{% endblock %}
Форма не находится ни в контейнере bootstrap, ни вообще не имеет стилизации. Что я здесь упускаю? Спасибо.
Похоже, что вы правильно загрузили библиотеку тегов шаблона django_bootstrap5 как в базовый, так и в дочерние шаблоны. Однако, похоже, что вам не хватает Bootstrap CSS и JavaScript файлов, которые обеспечивают фактическую стилизацию и функциональность.
Убедитесь, что файлы Bootstrap CSS и JavaScript включены в ваш HTML, либо путем ссылки на CDN, либо путем включения их в ваши статические файлы. Вы также можете включить их в шаблон base.html, чтобы не включать их на каждой странице.
В вашем файле base.html это должно выглядеть примерно так:
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css" integrity="sha384-JcKb8q3iqJ61gNV9KGb8thSsNjpSL0n8PARn9HuZOnIxN0hoP+VmmDGMN5t9UJ0Z" crossorigin="anonymous">
<script src="https://code.jquery.com/jquery-3.5.1.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.min.js" integrity="sha384-B4gt1jrGC7Jh4AgTPSdUtOBvfO8shuf57BaghqFfPlYxofvL8/KUEfYiJOMMV+rV" crossorigin="anonymous"></script>
Вам также необходимо убедиться, что вы включаете тег шаблона bootstrap_form в правильном месте. У вас он находится внутри тега, но должен быть вне его, например, так:
<form method="POST">
{% csrf_token %}
{% bootstrap_form form %}
<input type="submit" value="Sign Up" class="btn btn-default">
</form>
Отследил это в исходном коде: для использования пакета django_bootstrap5
вы должны включить bootstrap через cdn или путем загрузки локальных файлов в static, в дополнение к установке пакета django_bootstrap5
.
Я поймал это в решенной проблеме на github здесь, вот соответствующая строка:
Hi, Just a tiny error on the core.py file that I forgot to fix on loading the app in a new environment, the final 's' is missing on line 13:
"url": "https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/js/bootstrap.bundle.min.j",
Rather than:
"url": "https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/js/bootstrap.bundle.min.js",
Easy enough to fix but thought it might be handy to prevent any panic moments!
В заключение установите bootstrap, а также django_bootstrap5
!