Django 为什么我不能使用基于类(列表视图)的视图,但对于基于函数的视图,它工作正常?
我的问题:为什么我不能用基于类的列表视图查看仅搜索ayan rand的书 这是我的商店列表的基于函数的视图,我正在检索我的所有图书对象并以HTML呈现,它工作正常 但是使用classbasedview“SearchBookDetail”我无法获得指定的图书详细信息 Views.py: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
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%}