2017-12-06 3 views
-2

私の質問:なぜayan randの書籍は、クラスベースのリストビューでしか見ることができませんか?なぜ私はclassbased(リストビュー)で見ることができませんが、機能ベースのビューでは正常に動作していますか?

これは私の関数ベースのストアリストのビューで、私はすべてのブックオブジェクトを取得して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) 

Urls.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 %} 
+1

何が間違っているのかわかりません。何が起こりますか、それはあなたが期待するものとどのように違うのですか? –

+0

"http://127.0.0.1:8000/store/"ですべてのbookobjectsを見ることができますが、 "http://127.0.0.1:8000/store/SearchBookDetail/"を使用していますが、私はできません何かを見る。私はデータを見ることができません –

+0

そしてテンプレートには何が入っていますか? –

答えて

1

リストビューはobject_list、ないobjects_listとしてテンプレートにそのデータを送信します。

+0

これは動作します!ありがとう!ダニエル・ローズマン –

関連する問題