@LenTop

Не работают теги в шаблоне Django?

Здравствуйте! Есть проблема с использование тегов в Django, так как я новенький в программировании. Вот в чем суть: при использовании {% extends %} мой html файл не наследует класс родителя. А также не работает метод objects в views.py.
Версия - Python 3.8
Django - 3.1.3
А также при отображении кода в браузере, отображаются сами теги:
{% block title %}{% endblock %} {% load static %}
{% block sidebar %}
Home page
All books
All authors
{% endblock %}

Это views.py
from django.shortcuts import render
from .models import Book, Author, BookInstance, Genre


def index(request):
    """
    Функция отображения для домашней страницы сайта.
    """
    # Генерация "количеств" некоторых главных объектов

    num_books = Book.objects.all().count()
    num_instances = BookInstance.objects.all().count()
    # Доступные книги (статус = 'a')
    num_instances_available = BookInstance.objects.filter(status__exact='a').count()
    num_authors = Author.objects.count()  # Метод 'all()' применен по умолчанию.

    # Отрисовка HTML-шаблона index.html с данными внутри
    # переменной контекста context
    return render(
        request,
        'index.html',
        context={'num_books': num_books, 'num_instances': num_instances,
                 'num_instances_available': num_instances_available, 'num_authors': num_authors}
    )


Это родительский html - base_generic.html
<!DOCTYPE html>
<html lang="en">
<head>

    {% block title %}<title>Local library</title>{% endblock %}
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>

    <!-- Добавление дополнительного статического CSS файла -->
    {% load static %}
    <link rel="stylesheet" href="{% static 'css/style.css' %}">
</head>

<body>

    <div class="container-fluid">

        <div class="row">
            <div class="col-sm-2">
                {% block sidebar %}
                <ul class="side-bar-nav">
                    <li><a href="{% url 'index' %}">Home page</a></li>
                    <li><a href="">All books</a></li>
                    <li><a href="">All authors</a></li>
                </ul>
                {% endblock %}
            </div>
            <div class="col-sm-10">
                {% block content %}{% endblock %}
            </div>
        </div>

    </div>

</body>
</html>


И дочерний html - index.html
{% extends "templates/base_generic.html" %}

{% block content %}
<h1>Local Library Home</h1>

  <p>Welcome to <em>LocalLibrary</em>, a very basic Django website developed as a tutorial example on the Mozilla Developer Network.</p>

<h2>Dynamic content</h2>

  <p>The library has the following record counts:</p>
  <ul>
      <li><strong>Books:</strong> {{ num_books }}</li>
      <li><strong>Copies:</strong> {{ num_instances }}</li>
      <li><strong>Copies available:</strong> {{ num_instances_available }}</li>
      <li><strong>Authors:</strong> {{ num_authors }}</li>
  </ul>
{% endblock %}


За раннее спасибо!
  • Вопрос задан
  • 51 просмотр
Пригласить эксперта
Ответы на вопрос 1
@Black8
Здравствуйте.
Ошибка скорее всего, кроется в строке: « {% extends "templates/base_generic.html" %}» . (дочернего html)

Попробуйте переписать тег в ней на «{% extends “base_generic.html” %}». Надеюсь, поможет)) сам учу Django
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы