И это всё МОЁ

Всем доброго времени суток! Помогите, пожалуйста, устранить ошибку: Reverse for 'book_list_view' not found. 'book_list_view' is not a valid view function or pattern name. при попытке вывести список книг с формой для поиска на странице (http://127.0.0.1:8000 == name='book_list_view'). Без формы в шаблоне все Ok.

Имеется модель:

$ cat models.py 
from django.db import models


class Book(models.Model):
title = models.CharField(u'Title', max_length=256)
abstract = models.CharField(u'Abstract', max_length=512)

def get_absolute_url(self):
return reverse('book:book_detail_view', kwargs={'pk': self.pk})

class Meta:
db_table = 'book'

def __str__(self):
return u'Book {}'.format(self.title)

Представление у url:

$ cat views.py 
from django.views import generic
from django.db.models import Q

from .models import Book


class BookDetailView(generic.DetailView):
model = Book
template_name = 'book/book_detail_view.html'


class BookListView(generic.ListView):
model = Book
template_name = 'book/book_list_view.html'
paginate_by = 10

def get_queryset(self):
ft = self.request.GET.get('find_title')
fa = self.request.GET.get('find_abstract')
if ft and fa:
queryset = Book.objects.filter(Q(title__icontains=ft) &
Q(abstract__icontains=fa))
else:
queryset = Book.objects.all()
return queryset



$ cat urls.py
from django.urls import path

from . import views

app_name = 'book'

urlpatterns = [
path('', views.BookListView.as_view(), name='book_list_view'),
path('book/<str:pk>/', views.BookDetailView.as_view(), name='book_detail_view'),
]

Шаблон

{% extends "base.html" %}

{% block title %}The Books{% endblock %}

{% block content %}


<form action="{% url 'book_list_view' %}" method='GET'>
<input type="text" name="find_title" />
<input type="text" name="find_abstract" />
<button type="submit">Search</button>
</form>


<ul>
{% for item in object_list %}
<li><a href="{% url 'book:book_detail_view' item.pk %}">`item`.`title`</a></li>
{% endfor %}
</ul>

{% if is_paginated %}

{% endif %}


{% endblock %}








 ,