Django 为什么我不能使用基于类(列表视图)的视图,但对于基于函数的视图,它工作正常?

Django 为什么我不能使用基于类(列表视图)的视图,但对于基于函数的视图,它工作正常?,django,django-templates,django-views,Django,Django Templates,Django Views,我的问题:为什么我不能用基于类的列表视图查看仅搜索ayan rand的书 这是我的商店列表的基于函数的视图,我正在检索我的所有图书对象并以HTML呈现,它工作正常 但是使用classbasedview“SearchBookDetail”我无法获得指定的图书详细信息 Views.py: from django.shortcuts import render, get_object_or_404 from django.http import HttpResponse,HttpResponseR

我的问题:为什么我不能用基于类的列表视图查看仅搜索ayan rand的书

这是我的商店列表的基于函数的视图,我正在检索我的所有图书对象并以HTML呈现,它工作正常

但是使用classbasedview“SearchBookDetail”我无法获得指定的图书详细信息

Views.py:

from django.shortcuts import render, get_object_or_404
from django.http import  HttpResponse,HttpResponseRedirect
from django.views.generic import TemplateView,ListView,DetailView

def store_listView(request,):
      queryset=Book.objects.all()

      context={
           "objects_list":queryset
      }
      return render(request,'bookstores/store.html',context)

class SearchBookDetail(ListView):
    template_name = "bookstores/store.html"
    queryset = Book.objects.filter(author__icontains='Ayan Rand')
    print("Ayan Rand query set", queryset)
URL.py:

 from django.conf.urls import url
 from django.contrib import admin
 from django.views.generic import TemplateView
 from store.views import (Home,ContactView,LoginView,
                     store_listView,
                     SearchBookDetail,
                     book_createview,
                     QuoteslistView,
                    AyanRandBookDetail,
                     quotesFunctionView)

 urlpatterns = [
   url(r'^admin/', admin.site.urls),
   url(r'^$',Home.as_view()),
   url(r'^contact/$',ContactView.as_view()),
   url(r'^login/$',LoginView.as_view()),
   url(r'^store/$',store_listView),
   url(r'^store/AyanRandBookDetail/$',AyanRandBookDetail.as_view()),
   url(r'^store/SearchBookDetail/$',SearchBookDetail.as_view()),
   url(r'^quotes/$',quotesFunctionView)]
store.html:

 {% extends "home.html" %}
 {% block head_title %}Store || {{ block.super }} {% endblock head_title %}
 {% block content %}
 <head>
   <meta charset="UTF-8">
   <title>Store</title>
 </head>

 <h6>Books available</h6>
 <ul>
   {% for obj in objects_list %}
   <li>{{obj}}<br>
    {{obj.book_image}} <br>
    {{obj.description}} <br>
    {{obj.author}}<br>
    {{obj.genre}}<br>
    {{obj.price}}<br>
    </li>

   {% endfor %}
</ul>


{% endblock content %}
{%extends“home.html”%}
{%block-head_-title%}存储区{{block.super}{%endblock-head_-title%}
{%block content%}
商场
现有书籍
    {对象中obj的%u列表%}
  • {{obj}}
    {{obj.book_image}}
    {{obj.description}}
    {{obj.author}}
    {{obj.genre}}
    {{obj.price}}
  • {%endfor%}
{%endblock内容%}
ListView将其数据作为
对象列表
发送到模板,而不是
对象列表

您还没有告诉我们出了什么问题。发生了什么,这与您期望的有何不同?我可以使用此-“”查看所有bookobjects,但当我使用“”时,我无法查看任何内容。虽然我看不到数据和模板包含什么?store.html:{%extends“home.html”%}{%block-head\u-title%}store{124;{block.super}{%endblock-head\u-title%}{%block-content%}存储书籍可用
    {%obj-in-objects\u-list%}
  • {obj}
    {obj.book\u-image}
    {obj.description}
    {{obj.author}}
    {{obj.genre}
    {{obj.price}
  • {%endfor%}
{%endblock content%}你应该把它作为问题的编辑。