Данные из базы данных не отображаются в html-шаблоне в django

Я получил данные из таблицы books в views.py и передал их в show.html как словарь.Он не отображается.Также я хотел проверить, есть ли ключ, переданный в html...поэтому специально написал параграф после {%if key1 %}. , он не показывает и этот параграф. В чем причина или моя ошибка?

вот мой фрагмент кода

views.py

def show(request):  
    books = Books.objects.all()  
    return render(request,'app/show.html',{'key1':books})   

urls.py

from django.urls import path
from . import views

urlpatterns = [path("",views.index,name = 'home'),  
path('show/',views.show,name= 'show'),
]

models.py

class Books(models.Model):  
    book_num = models.IntegerField()  
    auth_name = models.CharField(max_length = 50)  
    book_name = models.CharField(max_length = 100)  
    def __str__(self):  
        return self.auth_name  

show.html

<center>
    <table>
        <tbody>
            <th>Available books</th>
        {%if key1%}
            <P>please check if issued</p>
            {% for i in key1 %}
                <tr>
                    <td>Author name:{{i.auth_name}}</td>
                    <td>Book title:{{i.book_name}}</td>    
                </tr>
            {% endfor %}
        {% endif %}   
      </tbody>
    </table>
</center>
Вернуться на верх