Okay, I also noticed something in the TEMPLATES VARIABLE in your 
settings.py file, please make DIRS an empty list like this [] with no space 
or better still change to [os.path.join(BASE_DIR, 'catalog/templates')]

On Wednesday, October 6, 2021 at 5:00:42 PM UTC+2 [email protected] wrote:

> Thank you!
> I corrected as you wrote. But I also have this mistake (
> TemplateDoesNotExist at /catalog/books/
> catalog/book_list.html, catalog/book_list.html). 
> Might I take the wrong path? (my path is below picture)
> Also thank you for helping me. I am grateful to you. I have had this 
> problem for 1 week. 
> [image: image.png]
>
>
> ср, 6 окт. 2021 г. в 16:19, Adeyemi Deji <[email protected]>:
>
>> correct paginated_by to paginate_by.
>>
>>
>> <https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail&utm_term=icon>
>>  Virus-free. 
>> www.avast.com 
>> <https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail&utm_term=link>
>>  
>> <#m_-4865023885270008228_m_2700252164806904525_m_-6914425398611891894_DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>
>>
>> On Wed, Oct 6, 2021 at 3:17 PM Adeyemi Deji <[email protected]> wrote:
>>
>>> Please correct your class views, you are getting it wrong.
>>> it should look like this.
>>>
>>> class BookListView(generic.ListView):
>>>         model = Book
>>>         paginated_by = 10
>>>         template_name = "catalog/book_list.html"
>>>
>>> class BookDetailView(generic.DetailView):
>>>         model = Book
>>>         template_name = "catalog/book_detail.html"
>>>
>>>
>>> <https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail&utm_term=icon>
>>>  Virus-free. 
>>> www.avast.com 
>>> <https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail&utm_term=link>
>>>  
>>> <#m_-4865023885270008228_m_2700252164806904525_m_-6914425398611891894_m_1024950781820118978_DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>
>>>
>>> On Wed, Oct 6, 2021 at 3:09 PM Никита Назаров <[email protected]> 
>>> wrote:
>>>
>>>> It also doesn't work. I see this error :"TemplateDoesNotExist at 
>>>> /catalog/books/ catalog/book_list.html, catalog/book_list.html"
>>>> My views.py is below.
>>>> Also, I checked on GitHub Mozilla (
>>>> https://github.com/mdn/django-locallibrary-tutorial/blob/master/catalog/views.py).
>>>>  
>>>> They didn't use - template_name. 
>>>> I'm completely confused. 
>>>>
>>>> from .models import Book, Author, BookInstance, Genre
>>>> from django.views import generic
>>>> from django.shortcuts import render
>>>> from django.views.generic.base import TemplateView
>>>>
>>>> # Create your views here.
>>>>
>>>>
>>>> def index(request):
>>>> """View function for home page of site."""
>>>>
>>>> # Generate counts of some of the main objects
>>>> num_books = Book.objects.all().count()
>>>> num_instances = BookInstance.objects.all().count()
>>>>
>>>> # Available books (status = 'a')
>>>> num_instances_available = BookInstance.objects.filter(
>>>> status__exact='a').count()
>>>>
>>>> # The 'all()' is implied by default.
>>>> num_authors = Author.objects.count()
>>>>
>>>> context = {
>>>> 'num_books': num_books,
>>>> 'num_instances': num_instances,
>>>> 'num_instances_available': num_instances_available,
>>>> 'num_authors': num_authors,
>>>> }
>>>>
>>>> # Render the HTML template index.html with the data in the context 
>>>> variable
>>>> return render(request, 'index.html', context=context)
>>>>
>>>>
>>>> class BookListView(generic.ListView):
>>>>
>>>> """Generic class-based view for a list of books."""
>>>>
>>>> model = Book
>>>> paginate_by = 10
>>>> template_name = "catalog/book_list.html"
>>>>
>>>>
>>>> class BookDetailView(generic.DetailView):
>>>>
>>>> """Generic class-based detail view for a book."""
>>>> model = Book
>>>> template_name = "catalog/book_detail.html"
>>>>
>>>>
>>>>
>>>> ср, 6 окт. 2021 г. в 14:24, Adeyemi Deji <[email protected]>:
>>>>
>>>>> class BookListView(generic.ListView):
>>>>>
>>>>>     """Generic class-based view for a list of books."""
>>>>>
>>>>>     model = Book
>>>>>
>>>>>     paginate_by = 10
>>>>>
>>>>>     template_name = "catalog/book_list.html"
>>>>>
>>>>>
>>>>> <https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail&utm_term=icon>
>>>>>  Virus-free. 
>>>>> www.avast.com 
>>>>> <https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail&utm_term=link>
>>>>>  
>>>>> <#m_-4865023885270008228_m_2700252164806904525_m_-6914425398611891894_m_1024950781820118978_m_8455319138707163929_m_3791702616293114032_DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>
>>>>>
>>>>> On Wed, Oct 6, 2021 at 1:21 PM Adeyemi Deji <[email protected]> 
>>>>> wrote:
>>>>>
>>>>>> Please don't change your formal code setting, just add the 
>>>>>> template_name attribute and specify the template you are referring to
>>>>>> just add this to your former code:
>>>>>> template_name = "catalog/book_list.html"
>>>>>>
>>>>>>
>>>>>> <https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail&utm_term=icon>
>>>>>>  Virus-free. 
>>>>>> www.avast.com 
>>>>>> <https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail&utm_term=link>
>>>>>>  
>>>>>> <#m_-4865023885270008228_m_2700252164806904525_m_-6914425398611891894_m_1024950781820118978_m_8455319138707163929_m_3791702616293114032_m_2104138296797754165_DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>
>>>>>>
>>>>>> On Wed, Oct 6, 2021 at 1:09 PM Никита Назаров <[email protected]> 
>>>>>> wrote:
>>>>>>
>>>>>>> It doesn't seem to work. I wrote your example in views.py. 
>>>>>>> Or I might make mistakes. Could you see? 
>>>>>>>
>>>>>>> views. py
>>>>>>> from .models import Book, Author, BookInstance, Genre
>>>>>>> from django.views import generic
>>>>>>> from django.shortcuts import render
>>>>>>> from django.views.generic.base import TemplateView
>>>>>>>
>>>>>>> # Create your views here.
>>>>>>>
>>>>>>>
>>>>>>> def index(request):
>>>>>>> """View function for home page of site."""
>>>>>>>
>>>>>>> # Generate counts of some of the main objects
>>>>>>> num_books = Book.objects.all().count()
>>>>>>> num_instances = BookInstance.objects.all().count()
>>>>>>>
>>>>>>> # Available books (status = 'a')
>>>>>>> num_instances_available = BookInstance.objects.filter(
>>>>>>> status__exact='a').count()
>>>>>>>
>>>>>>> # The 'all()' is implied by default.
>>>>>>> num_authors = Author.objects.count()
>>>>>>>
>>>>>>> context = {
>>>>>>> 'num_books': num_books,
>>>>>>> 'num_instances': num_instances,
>>>>>>> 'num_instances_available': num_instances_available,
>>>>>>> 'num_authors': num_authors,
>>>>>>> }
>>>>>>>
>>>>>>> # Render the HTML template index.html with the data in the context 
>>>>>>> variable
>>>>>>> return render(request, 'catalog/index.html', context=context)
>>>>>>>
>>>>>>>
>>>>>>> class BookListView(TemplateView):
>>>>>>> template_name = "catalog/book_list.html"
>>>>>>>
>>>>>>>
>>>>>>> class BookDetailView(TemplateView):
>>>>>>> template_name = "catalog/book_detail.html"
>>>>>>>
>>>>>>>
>>>>>>> urls.py
>>>>>>> from django.urls import path
>>>>>>> from . import views
>>>>>>>
>>>>>>>
>>>>>>> urlpatterns = [
>>>>>>> path('', views.index, name='index'),
>>>>>>> path('books/', views.BookListView.as_view(), name='books'),
>>>>>>> path('book/<int:pk>', views.BookDetailView.as_view(), name=
>>>>>>> 'book-detail'),
>>>>>>> ]
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> ср, 6 окт. 2021 г. в 12:45, Adeyemi Deji <[email protected]>:
>>>>>>>
>>>>>>>> for example.
>>>>>>>>
>>>>>>>> class AboutView(TemplateView):
>>>>>>>>     template_name = "about.html"
>>>>>>>>
>>>>>>>>
>>>>>>>> On Wed, Oct 6, 2021 at 11:32 AM Никита Назаров <[email protected]> 
>>>>>>>> wrote:
>>>>>>>>
>>>>>>>>> Hello!
>>>>>>>>> Thank you!
>>>>>>>>> I'm sorry. How could I do this? 
>>>>>>>>>
>>>>>>>>> среда, 6 октября 2021 г. в 11:20:19 UTC+3, [email protected]: 
>>>>>>>>>
>>>>>>>>>> Hi, I observed that you didn't specify the template name 
>>>>>>>>>> attribute for the BookListView and BookDetailView, that should solve 
>>>>>>>>>> you 
>>>>>>>>>> problem.
>>>>>>>>>>
>>>>>>>>>> On Tuesday, October 5, 2021 at 10:37:19 PM UTC+2 
>>>>>>>>>> [email protected] wrote:
>>>>>>>>>>
>>>>>>>>>>> Hello!
>>>>>>>>>>> I’m beginner in Django. I do Django Tutorial from Mozilla.
>>>>>>>>>>> I get TemplateDoesNotExist at /catalog/books/ . Could you help 
>>>>>>>>>>> me?. I don’t understand how to resolve it.
>>>>>>>>>>>
>>>>>>>>>>> */catalog/urls*
>>>>>>>>>>>
>>>>>>>>>>> from django.urls import path
>>>>>>>>>>>
>>>>>>>>>>> from . import views
>>>>>>>>>>>
>>>>>>>>>>> urlpatterns = [
>>>>>>>>>>>
>>>>>>>>>>>     path('', views.index, name='index'),
>>>>>>>>>>>
>>>>>>>>>>>     path('books/', views.BookListView.as_view(), name='books'),
>>>>>>>>>>>
>>>>>>>>>>>     path('book/<int:pk>', views.BookDetailView.as_view(), 
>>>>>>>>>>> name='book-detail'),
>>>>>>>>>>>
>>>>>>>>>>> ]
>>>>>>>>>>>
>>>>>>>>>>> *catalog/models*
>>>>>>>>>>>
>>>>>>>>>>> # Used to generate URLs by reversing the URL patterns
>>>>>>>>>>>
>>>>>>>>>>> from django.urls import reverse
>>>>>>>>>>>
>>>>>>>>>>> from django.db import models
>>>>>>>>>>>
>>>>>>>>>>> from django.urls import reverse
>>>>>>>>>>>
>>>>>>>>>>> import uuid
>>>>>>>>>>>
>>>>>>>>>>> # Create your models here
>>>>>>>>>>>
>>>>>>>>>>> class Genre(models.Model):
>>>>>>>>>>>
>>>>>>>>>>>     """Model representing a book genre (e.g. Science Fiction, 
>>>>>>>>>>> Non Fiction)."""
>>>>>>>>>>>
>>>>>>>>>>>     name = models.CharField(
>>>>>>>>>>>
>>>>>>>>>>>         max_length=200,
>>>>>>>>>>>
>>>>>>>>>>>         help_text="Enter a book genre (e.g. Science Fiction, 
>>>>>>>>>>> French Poetry etc.)"
>>>>>>>>>>>
>>>>>>>>>>>     )
>>>>>>>>>>>
>>>>>>>>>>>     def __str__(self):
>>>>>>>>>>>
>>>>>>>>>>>         """String for representing the Model object (in Admin 
>>>>>>>>>>> site etc.)"""
>>>>>>>>>>>
>>>>>>>>>>>         return self.name
>>>>>>>>>>>
>>>>>>>>>>> class Book(models.Model):
>>>>>>>>>>>
>>>>>>>>>>>     """Model representing a book (but not a specific copy of a 
>>>>>>>>>>> book)."""
>>>>>>>>>>>
>>>>>>>>>>>     title = models.CharField(max_length=200)
>>>>>>>>>>>
>>>>>>>>>>>     author = models.ForeignKey('Author', 
>>>>>>>>>>> on_delete=models.SET_NULL, null=True)
>>>>>>>>>>>
>>>>>>>>>>>     # Foreign Key used because book can only have one author, 
>>>>>>>>>>> but authors can have multiple books
>>>>>>>>>>>
>>>>>>>>>>>     # Author as a string rather than object because it hasn't 
>>>>>>>>>>> been declared yet in file.
>>>>>>>>>>>
>>>>>>>>>>>     summary = models.TextField(
>>>>>>>>>>>
>>>>>>>>>>>         max_length=1000, help_text="Enter a brief description of 
>>>>>>>>>>> the book")
>>>>>>>>>>>
>>>>>>>>>>>     isbn = models.CharField('ISBN', max_length=13,
>>>>>>>>>>>
>>>>>>>>>>>                             unique=True,
>>>>>>>>>>>
>>>>>>>>>>>                             help_text='13 Character <a href="
>>>>>>>>>>> https://www.isbn-international.org/content/what-isbn'
>>>>>>>>>>>
>>>>>>>>>>>                                       '">ISBN number</a>')
>>>>>>>>>>>
>>>>>>>>>>>     genre = models.ManyToManyField(
>>>>>>>>>>>
>>>>>>>>>>>         Genre, help_text="Select a genre for this book")
>>>>>>>>>>>
>>>>>>>>>>>     # ManyToManyField used because a genre can contain many 
>>>>>>>>>>> books and a Book can cover many genres.
>>>>>>>>>>>
>>>>>>>>>>>     # Genre class has already been defined so we can specify the 
>>>>>>>>>>> object above.
>>>>>>>>>>>
>>>>>>>>>>>     language = models.ForeignKey(
>>>>>>>>>>>
>>>>>>>>>>>         'Language', on_delete=models.SET_NULL, null=True)
>>>>>>>>>>>
>>>>>>>>>>>     class Meta:
>>>>>>>>>>>
>>>>>>>>>>>         ordering = ['title', 'author']
>>>>>>>>>>>
>>>>>>>>>>>     def display_genre(self):
>>>>>>>>>>>
>>>>>>>>>>>         """Creates a string for the Genre. This is required to 
>>>>>>>>>>> display genre in Admin."""
>>>>>>>>>>>
>>>>>>>>>>>         return ', '.join([genre.name for genre in 
>>>>>>>>>>> self.genre.all()[:3]])
>>>>>>>>>>>
>>>>>>>>>>>     display_genre.short_description = 'Genre'
>>>>>>>>>>>
>>>>>>>>>>>     def get_absolute_url(self):
>>>>>>>>>>>
>>>>>>>>>>>         """Returns the url to access a particular book 
>>>>>>>>>>> instance."""
>>>>>>>>>>>
>>>>>>>>>>>         return reverse('book-detail', args=[str(self.id)])
>>>>>>>>>>>
>>>>>>>>>>>     def __str__(self):
>>>>>>>>>>>
>>>>>>>>>>>         """String for representing the Model object."""
>>>>>>>>>>>
>>>>>>>>>>>         return self.title
>>>>>>>>>>>
>>>>>>>>>>> class Language(models.Model):
>>>>>>>>>>>
>>>>>>>>>>>     name = models.CharField(
>>>>>>>>>>>
>>>>>>>>>>>         max_length=50, help_text="Enter the book's natural 
>>>>>>>>>>> language (e.g. English, French, Japanese etc.)")
>>>>>>>>>>>
>>>>>>>>>>>     def __str__(self):
>>>>>>>>>>>
>>>>>>>>>>>         return self.name
>>>>>>>>>>>
>>>>>>>>>>> class BookInstance(models.Model):
>>>>>>>>>>>
>>>>>>>>>>>     id = models.UUIDField(primary_key=True, default=uuid.uuid4,
>>>>>>>>>>>
>>>>>>>>>>>                           help_text="Unique ID for this 
>>>>>>>>>>> particular book across whole library")
>>>>>>>>>>>
>>>>>>>>>>>     book = models.ForeignKey('Book', on_delete=models.SET_NULL, 
>>>>>>>>>>> null=True)
>>>>>>>>>>>
>>>>>>>>>>>     imprint = models.CharField(max_length=200)
>>>>>>>>>>>
>>>>>>>>>>>     due_back = models.DateField(null=True, blank=True)
>>>>>>>>>>>
>>>>>>>>>>>     LOAN_STATUS = (
>>>>>>>>>>>
>>>>>>>>>>>         ('m', 'Maintenance'),
>>>>>>>>>>>
>>>>>>>>>>>         ('o', 'On loan'),
>>>>>>>>>>>
>>>>>>>>>>>         ('a', 'Available'),
>>>>>>>>>>>
>>>>>>>>>>>         ('r', 'Reserved'),
>>>>>>>>>>>
>>>>>>>>>>>     )
>>>>>>>>>>>
>>>>>>>>>>>     status = models.CharField(max_length=1, choices=LOAN_STATUS,
>>>>>>>>>>>
>>>>>>>>>>>                               blank=True, default='m', 
>>>>>>>>>>> help_text='Book availability')
>>>>>>>>>>>
>>>>>>>>>>>     class Meta:
>>>>>>>>>>>
>>>>>>>>>>>         ordering = ["due_back"]
>>>>>>>>>>>
>>>>>>>>>>>     def __str__(self):
>>>>>>>>>>>
>>>>>>>>>>>         """
>>>>>>>>>>>
>>>>>>>>>>>         String for representing the Model object
>>>>>>>>>>>
>>>>>>>>>>>         """
>>>>>>>>>>>
>>>>>>>>>>>         return '%s (%s)' % (self.id, self.book.title)
>>>>>>>>>>>
>>>>>>>>>>> class Author(models.Model):
>>>>>>>>>>>
>>>>>>>>>>>     """
>>>>>>>>>>>
>>>>>>>>>>>     Model representing an author.
>>>>>>>>>>>
>>>>>>>>>>>     """
>>>>>>>>>>>
>>>>>>>>>>>     first_name = models.CharField(max_length=100)
>>>>>>>>>>>
>>>>>>>>>>>     last_name = models.CharField(max_length=100)
>>>>>>>>>>>
>>>>>>>>>>>     date_of_birth = models.DateField(null=True, blank=True)
>>>>>>>>>>>
>>>>>>>>>>>     date_of_death = models.DateField('Died', null=True, 
>>>>>>>>>>> blank=True)
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>     def get_absolute_url(self):
>>>>>>>>>>>
>>>>>>>>>>>         """
>>>>>>>>>>>
>>>>>>>>>>>         Returns the url to access a particular author instance.
>>>>>>>>>>>
>>>>>>>>>>>         """
>>>>>>>>>>>
>>>>>>>>>>>         return reverse('author-detail', args=[str(self.id)])
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>     def __str__(self):
>>>>>>>>>>>
>>>>>>>>>>>         """
>>>>>>>>>>>
>>>>>>>>>>>         String for representing the Model object.
>>>>>>>>>>>
>>>>>>>>>>>         """
>>>>>>>>>>>
>>>>>>>>>>>         return '%s, %s' % (self.last_name, self.first_name)
>>>>>>>>>>>
>>>>>>>>>>> *catalog/views*
>>>>>>>>>>>
>>>>>>>>>>> from django.views import generic
>>>>>>>>>>>
>>>>>>>>>>> from django.shortcuts import render
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> # Create your views here.
>>>>>>>>>>>
>>>>>>>>>>> from .models import Book, Author, BookInstance, Genre
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> def index(request):
>>>>>>>>>>>
>>>>>>>>>>>     """View function for home page of site."""
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>     # Generate counts of some of the main objects
>>>>>>>>>>>
>>>>>>>>>>>     num_books = Book.objects.all().count()
>>>>>>>>>>>
>>>>>>>>>>>     num_instances = BookInstance.objects.all().count()
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>     # Available books (status = 'a')
>>>>>>>>>>>
>>>>>>>>>>>     num_instances_available = BookInstance.objects.filter(
>>>>>>>>>>>
>>>>>>>>>>>         status__exact='a').count()
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>     # The 'all()' is implied by default.
>>>>>>>>>>>
>>>>>>>>>>>     num_authors = Author.objects.count()
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>     context = {
>>>>>>>>>>>
>>>>>>>>>>>         'num_books': num_books,
>>>>>>>>>>>
>>>>>>>>>>>         'num_instances': num_instances,
>>>>>>>>>>>
>>>>>>>>>>>         'num_instances_available': num_instances_available,
>>>>>>>>>>>
>>>>>>>>>>>         'num_authors': num_authors,
>>>>>>>>>>>
>>>>>>>>>>>     }
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>     # Render the HTML template index.html with the data in the 
>>>>>>>>>>> context variable
>>>>>>>>>>>
>>>>>>>>>>>     return render(request, 'catalog/index.html', context=context)
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> class BookListView(generic.ListView):
>>>>>>>>>>>
>>>>>>>>>>>     """Generic class-based view for a list of books."""
>>>>>>>>>>>
>>>>>>>>>>>     model = Book
>>>>>>>>>>>
>>>>>>>>>>>     paginate_by = 10
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> class BookDetailView(generic.DetailView):
>>>>>>>>>>>
>>>>>>>>>>>     """Generic class-based detail view for a book."""
>>>>>>>>>>>
>>>>>>>>>>>     model = Book
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> *locallibrary/settings.py*
>>>>>>>>>>>
>>>>>>>>>>> """
>>>>>>>>>>>
>>>>>>>>>>> Django settings for locallibrary project.
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> Generated by 'django-admin startproject' using Django 3.2.7.
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> For more information on this file, see
>>>>>>>>>>>
>>>>>>>>>>> https://docs.djangoproject.com/en/3.2/topics/settings/
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> For the full list of settings and their values, see
>>>>>>>>>>>
>>>>>>>>>>> https://docs.djangoproject.com/en/3.2/ref/settings/
>>>>>>>>>>>
>>>>>>>>>>> """
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> import os
>>>>>>>>>>>
>>>>>>>>>>> from pathlib import Path
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> # Build paths inside the project like this: BASE_DIR / 'subdir'.
>>>>>>>>>>>
>>>>>>>>>>> BASE_DIR = Path(__file__).resolve().parent.parent
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> # Quick-start development settings - unsuitable for production
>>>>>>>>>>>
>>>>>>>>>>> # See 
>>>>>>>>>>> https://docs.djangoproject.com/en/3.2/howto/deployment/checklist/
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> # SECURITY WARNING: keep the secret key used in production 
>>>>>>>>>>> secret!
>>>>>>>>>>>
>>>>>>>>>>> SECRET_KEY = 
>>>>>>>>>>> 'django-insecure-k6nhe44hm-a90^cs6**sre$8ajn7u!e735ou4c(1iqk-ga&g!9'
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> # SECURITY WARNING: don't run with debug turned on in production!
>>>>>>>>>>>
>>>>>>>>>>> DEBUG = os.environ.get('DJANGO_DEBUG', '') != 'False'
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> ALLOWED_HOSTS = []
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> # Application definition
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> INSTALLED_APPS = [
>>>>>>>>>>>
>>>>>>>>>>>     'django.contrib.admin',
>>>>>>>>>>>
>>>>>>>>>>>     'django.contrib.auth',
>>>>>>>>>>>
>>>>>>>>>>>     'django.contrib.contenttypes',
>>>>>>>>>>>
>>>>>>>>>>>     'django.contrib.sessions',
>>>>>>>>>>>
>>>>>>>>>>>     'django.contrib.messages',
>>>>>>>>>>>
>>>>>>>>>>>     'django.contrib.staticfiles',
>>>>>>>>>>>
>>>>>>>>>>>     'catalog.apps.CatalogConfig',
>>>>>>>>>>>
>>>>>>>>>>> ]
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> MIDDLEWARE = [
>>>>>>>>>>>
>>>>>>>>>>>     'django.middleware.security.SecurityMiddleware',
>>>>>>>>>>>
>>>>>>>>>>>     'django.contrib.sessions.middleware.SessionMiddleware',
>>>>>>>>>>>
>>>>>>>>>>>     'django.middleware.common.CommonMiddleware',
>>>>>>>>>>>
>>>>>>>>>>>     'django.middleware.csrf.CsrfViewMiddleware',
>>>>>>>>>>>
>>>>>>>>>>>     'django.contrib.auth.middleware.AuthenticationMiddleware',
>>>>>>>>>>>
>>>>>>>>>>>     'django.contrib.messages.middleware.MessageMiddleware',
>>>>>>>>>>>
>>>>>>>>>>>     'django.middleware.clickjacking.XFrameOptionsMiddleware',
>>>>>>>>>>>
>>>>>>>>>>> ]
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> ROOT_URLCONF = 'locallibrary.urls'
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> TEMPLATES = [
>>>>>>>>>>>
>>>>>>>>>>>     {
>>>>>>>>>>>
>>>>>>>>>>>         'BACKEND': 
>>>>>>>>>>> 'django.template.backends.django.DjangoTemplates',
>>>>>>>>>>>
>>>>>>>>>>>         'DIRS': [os.path.join(BASE_DIR, 'templates')],
>>>>>>>>>>>
>>>>>>>>>>>         'APP_DIRS': True,
>>>>>>>>>>>
>>>>>>>>>>>         'OPTIONS': {
>>>>>>>>>>>
>>>>>>>>>>>             'context_processors': [
>>>>>>>>>>>
>>>>>>>>>>>                 'django.template.context_processors.debug',
>>>>>>>>>>>
>>>>>>>>>>>                 'django.template.context_processors.request',
>>>>>>>>>>>
>>>>>>>>>>>                 'django.contrib.auth.context_processors.auth',
>>>>>>>>>>>
>>>>>>>>>>>                 
>>>>>>>>>>> 'django.contrib.messages.context_processors.messages',
>>>>>>>>>>>
>>>>>>>>>>>             ],
>>>>>>>>>>>
>>>>>>>>>>>         },
>>>>>>>>>>>
>>>>>>>>>>>     },
>>>>>>>>>>>
>>>>>>>>>>> ]
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> WSGI_APPLICATION = 'locallibrary.wsgi.application'
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> # Database
>>>>>>>>>>>
>>>>>>>>>>> # https://docs.djangoproject.com/en/3.2/ref/settings/#databases
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> DATABASES = {
>>>>>>>>>>>
>>>>>>>>>>>     'default': {
>>>>>>>>>>>
>>>>>>>>>>>         'ENGINE': 'django.db.backends.sqlite3',
>>>>>>>>>>>
>>>>>>>>>>>         'NAME': BASE_DIR / 'db.sqlite3',
>>>>>>>>>>>
>>>>>>>>>>>     }
>>>>>>>>>>>
>>>>>>>>>>> }
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> # Password validation
>>>>>>>>>>>
>>>>>>>>>>> # 
>>>>>>>>>>> https://docs.djangoproject.com/en/3.2/ref/settings/#auth-password-validators
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> AUTH_PASSWORD_VALIDATORS = [
>>>>>>>>>>>
>>>>>>>>>>>     {
>>>>>>>>>>>
>>>>>>>>>>>         'NAME': 
>>>>>>>>>>> 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',
>>>>>>>>>>>
>>>>>>>>>>>     },
>>>>>>>>>>>
>>>>>>>>>>>     {
>>>>>>>>>>>
>>>>>>>>>>>         'NAME': 
>>>>>>>>>>> 'django.contrib.auth.password_validation.MinimumLengthValidator',
>>>>>>>>>>>
>>>>>>>>>>>     },
>>>>>>>>>>>
>>>>>>>>>>>     {
>>>>>>>>>>>
>>>>>>>>>>>         'NAME': 
>>>>>>>>>>> 'django.contrib.auth.password_validation.CommonPasswordValidator',
>>>>>>>>>>>
>>>>>>>>>>>     },
>>>>>>>>>>>
>>>>>>>>>>>     {
>>>>>>>>>>>
>>>>>>>>>>>         'NAME': 
>>>>>>>>>>> 'django.contrib.auth.password_validation.NumericPasswordValidator',
>>>>>>>>>>>
>>>>>>>>>>>     },
>>>>>>>>>>>
>>>>>>>>>>> ]
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> # Internationalization
>>>>>>>>>>>
>>>>>>>>>>> # https://docs.djangoproject.com/en/3.2/topics/i18n/
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> LANGUAGE_CODE = 'en-us'
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> TIME_ZONE = 'Europe/London'
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> USE_I18N = True
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> USE_L10N = True
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> USE_TZ = True
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> # Static files (CSS, JavaScript, Images)
>>>>>>>>>>>
>>>>>>>>>>> # https://docs.djangoproject.com/en/3.2/howto/static-files/
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> STATIC_URL = '/static/'
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> # Default primary key field type
>>>>>>>>>>>
>>>>>>>>>>> # 
>>>>>>>>>>> https://docs.djangoproject.com/en/3.2/ref/settings/#default-auto-field
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField'
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> *Path templates*
>>>>>>>>>>> locallibrary
>>>>>>>>>>> -----catalog
>>>>>>>>>>> ------ templates
>>>>>>>>>>> ------ base_generis.html
>>>>>>>>>>> -------book_detail.html
>>>>>>>>>>> ----------catalog
>>>>>>>>>>> ----------book_list.html
>>>>>>>>>>> ----------index.html
>>>>>>>>>>>
>>>>>>>>>>> *book_list.html*
>>>>>>>>>>>
>>>>>>>>>>> {% extends "base_generic.html" %}
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> {% block content %}
>>>>>>>>>>>
>>>>>>>>>>>     <h1>Book List</h1>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>     {% if book_list %}
>>>>>>>>>>>
>>>>>>>>>>>     <ul>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>       {% for book in book_list %}
>>>>>>>>>>>
>>>>>>>>>>>       <li>
>>>>>>>>>>>
>>>>>>>>>>>         <a href="{{ book.get_absolute_url }}">{{ book.title 
>>>>>>>>>>> }}</a> ({{book.author}})
>>>>>>>>>>>
>>>>>>>>>>>       </li>
>>>>>>>>>>>
>>>>>>>>>>>       {% endfor %}
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>     </ul>
>>>>>>>>>>>
>>>>>>>>>>>     {% else %}
>>>>>>>>>>>
>>>>>>>>>>>       <p>There are no books in the library.</p>
>>>>>>>>>>>
>>>>>>>>>>>     {% endif %} 
>>>>>>>>>>>
>>>>>>>>>>> {% endblock %}
>>>>>>>>>>>
>>>>>>>>>>> *index.html*
>>>>>>>>>>>
>>>>>>>>>>> {% extends "base_generic.html" %}
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> {% block title %}
>>>>>>>>>>>
>>>>>>>>>>> <title>Стартовая страница</title>
>>>>>>>>>>>
>>>>>>>>>>> {% endblock %}
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> {% 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 %}
>>>>>>>>>>>
>>>>>>>>>>> *traceback message*
>>>>>>>>>>>
>>>>>>>>>>> Environment:
>>>>>>>>>>>
>>>>>>>>>>> Request Method: GET
>>>>>>>>>>> Request URL: http://127.0.0.1:8000/catalog/books/
>>>>>>>>>>>
>>>>>>>>>>> Django Version: 3.2.7
>>>>>>>>>>> Python Version: 3.9.7
>>>>>>>>>>> Installed Applications:
>>>>>>>>>>> [‘django.contrib.admin’,
>>>>>>>>>>> ‘django.contrib.auth’,
>>>>>>>>>>> ‘django.contrib.contenttypes’,
>>>>>>>>>>> ‘django.contrib.sessions’,
>>>>>>>>>>> ‘django.contrib.messages’,
>>>>>>>>>>> ‘django.contrib.staticfiles’,
>>>>>>>>>>> ‘catalog.apps.CatalogConfig’]
>>>>>>>>>>> Installed Middleware:
>>>>>>>>>>> [‘django.middleware.security.SecurityMiddleware’,
>>>>>>>>>>> ‘django.contrib.sessions.middleware.SessionMiddleware’,
>>>>>>>>>>> ‘django.middleware.common.CommonMiddleware’,
>>>>>>>>>>> ‘django.middleware.csrf.CsrfViewMiddleware’,
>>>>>>>>>>> ‘django.contrib.auth.middleware.AuthenticationMiddleware’,
>>>>>>>>>>> ‘django.contrib.messages.middleware.MessageMiddleware’,
>>>>>>>>>>> ‘django.middleware.clickjacking.XFrameOptionsMiddleware’]
>>>>>>>>>>>
>>>>>>>>>>> Template loader postmortem
>>>>>>>>>>> Django tried loading these templates, in this order:
>>>>>>>>>>>
>>>>>>>>>>> Using engine django:
>>>>>>>>>>> * django.template.loaders.filesystem.Loader: 
>>>>>>>>>>> /Users/nikita/Documents/Github/devsearch/hello-world/locallibrary/templates/catalog/book_list.html
>>>>>>>>>>>  
>>>>>>>>>>> (Source does not exist)
>>>>>>>>>>> * django.template.loaders.app_directories.Loader: 
>>>>>>>>>>> /Users/nikita/Documents/Github/devsearch/hello-world/myproject_env/lib/python3.9/site-packages/django/contrib/admin/templates/catalog/book_list.html
>>>>>>>>>>>  
>>>>>>>>>>> (Source does not exist)
>>>>>>>>>>> * django.template.loaders.app_directories.Loader: 
>>>>>>>>>>> /Users/nikita/Documents/Github/devsearch/hello-world/myproject_env/lib/python3.9/site-packages/django/contrib/auth/templates/catalog/book_list.html
>>>>>>>>>>>  
>>>>>>>>>>> (Source does not exist)
>>>>>>>>>>> * django.template.loaders.app_directories.Loader: 
>>>>>>>>>>> /Users/nikita/Documents/Github/devsearch/hello-world/locallibrary/catalog/templates/catalog/book_list.html
>>>>>>>>>>>  
>>>>>>>>>>> (Source does not exist)
>>>>>>>>>>>
>>>>>>>>>>> Traceback (most recent call last):
>>>>>>>>>>> File 
>>>>>>>>>>> “/Users/nikita/Documents/Github/devsearch/hello-world/myproject_env/lib/python3.9/site-packages/django/core/handlers/exception.py”,
>>>>>>>>>>>  
>>>>>>>>>>> line 47, in inner
>>>>>>>>>>> response = get_response(request)
>>>>>>>>>>> File 
>>>>>>>>>>> “/Users/nikita/Documents/Github/devsearch/hello-world/myproject_env/lib/python3.9/site-packages/django/core/handlers/base.py”,
>>>>>>>>>>>  
>>>>>>>>>>> line 204, in _get_response
>>>>>>>>>>> response = response.render()
>>>>>>>>>>> File 
>>>>>>>>>>> “/Users/nikita/Documents/Github/devsearch/hello-world/myproject_env/lib/python3.9/site-packages/django/template/response.py”,
>>>>>>>>>>>  
>>>>>>>>>>> line 105, in render
>>>>>>>>>>> self.content = self.rendered_content
>>>>>>>>>>> File 
>>>>>>>>>>> “/Users/nikita/Documents/Github/devsearch/hello-world/myproject_env/lib/python3.9/site-packages/django/template/response.py”,
>>>>>>>>>>>  
>>>>>>>>>>> line 81, in rendered_content
>>>>>>>>>>> template = self.resolve_template(self.template_name)
>>>>>>>>>>> File 
>>>>>>>>>>> “/Users/nikita/Documents/Github/devsearch/hello-world/myproject_env/lib/python3.9/site-packages/django/template/response.py”,
>>>>>>>>>>>  
>>>>>>>>>>> line 63, in resolve_template
>>>>>>>>>>> return select_template(template, using=self.using)
>>>>>>>>>>> File 
>>>>>>>>>>> “/Users/nikita/Documents/Github/devsearch/hello-world/myproject_env/lib/python3.9/site-packages/django/template/loader.py”,
>>>>>>>>>>>  
>>>>>>>>>>> line 47, in select_template
>>>>>>>>>>> raise TemplateDoesNotExist(’, '.join(template_name_list), 
>>>>>>>>>>> chain=chain)
>>>>>>>>>>>
>>>>>>>>>>> Exception Type: TemplateDoesNotExist at /catalog/books/
>>>>>>>>>>> Exception Value: catalog/book_list.html
>>>>>>>>>>>
>>>>>>>>>> -- 
>>>>>>>>> You received this message because you are subscribed to the Google 
>>>>>>>>> Groups "Django users" group.
>>>>>>>>> To unsubscribe from this group and stop receiving emails from it, 
>>>>>>>>> send an email to [email protected].
>>>>>>>>> To view this discussion on the web visit 
>>>>>>>>> https://groups.google.com/d/msgid/django-users/17c51485-19f7-4693-aa4d-1e69e9a7ddd8n%40googlegroups.com
>>>>>>>>>  
>>>>>>>>> <https://groups.google.com/d/msgid/django-users/17c51485-19f7-4693-aa4d-1e69e9a7ddd8n%40googlegroups.com?utm_medium=email&utm_source=footer>
>>>>>>>>> .
>>>>>>>>>
>>>>>>>> -- 
>>>>>>>> You received this message because you are subscribed to a topic in 
>>>>>>>> the Google Groups "Django users" group.
>>>>>>>> To unsubscribe from this topic, visit 
>>>>>>>> https://groups.google.com/d/topic/django-users/8R6KRoYcHM0/unsubscribe
>>>>>>>> .
>>>>>>>> To unsubscribe from this group and all its topics, send an email to 
>>>>>>>> [email protected].
>>>>>>>> To view this discussion on the web visit 
>>>>>>>> https://groups.google.com/d/msgid/django-users/CAEO1GrrcCMRPuhkE_4xN8WJkRdf7LTYCbFNxSP4jfwK3Gq2QWQ%40mail.gmail.com
>>>>>>>>  
>>>>>>>> <https://groups.google.com/d/msgid/django-users/CAEO1GrrcCMRPuhkE_4xN8WJkRdf7LTYCbFNxSP4jfwK3Gq2QWQ%40mail.gmail.com?utm_medium=email&utm_source=footer>
>>>>>>>> .
>>>>>>>>
>>>>>>> -- 
>>>>>>> You received this message because you are subscribed to the Google 
>>>>>>> Groups "Django users" group.
>>>>>>> To unsubscribe from this group and stop receiving emails from it, 
>>>>>>> send an email to [email protected].
>>>>>>> To view this discussion on the web visit 
>>>>>>> https://groups.google.com/d/msgid/django-users/CAHynOmyfD4VbUiT-CDV-8mM8x5hk1B7FAcfVF3bGHAuLtx0vhQ%40mail.gmail.com
>>>>>>>  
>>>>>>> <https://groups.google.com/d/msgid/django-users/CAHynOmyfD4VbUiT-CDV-8mM8x5hk1B7FAcfVF3bGHAuLtx0vhQ%40mail.gmail.com?utm_medium=email&utm_source=footer>
>>>>>>> .
>>>>>>>
>>>>>>
>>>>>>
>>>>>> <https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail&utm_term=icon>
>>>>>>  Virus-free. 
>>>>>> www.avast.com 
>>>>>> <https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail&utm_term=link>
>>>>>>  
>>>>>> <#m_-4865023885270008228_m_2700252164806904525_m_-6914425398611891894_m_1024950781820118978_m_8455319138707163929_m_3791702616293114032_m_2104138296797754165_DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>
>>>>>>
>>>>> -- 
>>>>> You received this message because you are subscribed to a topic in the 
>>>>> Google Groups "Django users" group.
>>>>> To unsubscribe from this topic, visit 
>>>>> https://groups.google.com/d/topic/django-users/8R6KRoYcHM0/unsubscribe
>>>>> .
>>>>> To unsubscribe from this group and all its topics, send an email to 
>>>>> [email protected].
>>>>> To view this discussion on the web visit 
>>>>> https://groups.google.com/d/msgid/django-users/CAEO1Grq_aBWNFaKKjLXoDMYw4vK27auQZH4OxZtdzAHfEgSuhw%40mail.gmail.com
>>>>>  
>>>>> <https://groups.google.com/d/msgid/django-users/CAEO1Grq_aBWNFaKKjLXoDMYw4vK27auQZH4OxZtdzAHfEgSuhw%40mail.gmail.com?utm_medium=email&utm_source=footer>
>>>>> .
>>>>>
>>>> -- 
>>>> You received this message because you are subscribed to the Google 
>>>> Groups "Django users" group.
>>>> To unsubscribe from this group and stop receiving emails from it, send 
>>>> an email to [email protected].
>>>> To view this discussion on the web visit 
>>>> https://groups.google.com/d/msgid/django-users/CAHynOmyZ%3DM24bviLxHQ34ZtTGb_OQ%3DyXS5agTLXaDLXcXCWyMA%40mail.gmail.com
>>>>  
>>>> <https://groups.google.com/d/msgid/django-users/CAHynOmyZ%3DM24bviLxHQ34ZtTGb_OQ%3DyXS5agTLXaDLXcXCWyMA%40mail.gmail.com?utm_medium=email&utm_source=footer>
>>>> .
>>>>
>>> -- 
>> You received this message because you are subscribed to a topic in the 
>> Google Groups "Django users" group.
>> To unsubscribe from this topic, visit 
>> https://groups.google.com/d/topic/django-users/8R6KRoYcHM0/unsubscribe.
>> To unsubscribe from this group and all its topics, send an email to 
>> [email protected].
>>
> To view this discussion on the web visit 
>> https://groups.google.com/d/msgid/django-users/CAEO1GrpjN9exwV62_2S9y-tB0JLeLo%3DugfcX-_%3DH_C%3DfqotTSg%40mail.gmail.com
>>  
>> <https://groups.google.com/d/msgid/django-users/CAEO1GrpjN9exwV62_2S9y-tB0JLeLo%3DugfcX-_%3DH_C%3DfqotTSg%40mail.gmail.com?utm_medium=email&utm_source=footer>
>> .
>>
>

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-users/e584e4e0-c4b5-456a-a42f-bde526ac6c9en%40googlegroups.com.

Reply via email to