2017-08-29 78 views
0

我正在做一個django項目,一個音樂應用程序。它包含藝術家的名字,專輯標題,流派和圖像。當我創建了一個搜索表單,我得到這個error.I正在使用Django版本1.9.1想創建搜索字段,但錯誤'WSGIRequest'對象沒有屬性'請求'

view.py

from django.views import generic 
from . models import Album 
from django.views.generic.edit import CreateView , UpdateView ,DeleteView 
from django.core.urlresolvers import reverse_lazy 
from django.shortcuts import render,redirect 
from django.contrib.auth import authenticate,login 
from django.views.generic import View 
from .forms import UserForm 
from django.db.models import Q 

def get_queryset(self): 
    query= self.request.GET.get('q') 
    if query: 
     return Album.objects.filter(Q(album_title__icontains=query)) 
    else: 
     return Album.objects.all() 

form.py

<form class="navbar-form navbar-left" method="GET" action=""> 
    <div class="form-group"> 
     <input type="text" class="form-control" name="q" value='{{ request.GET.q }}'> 
    </div> 
    <button type="submit" class="btn btn-default" >search</button> 
</form> 

url.py

#checking for search 
url(r'^search/$', views.get_queryset, name='search'), 

瀏覽器中的錯誤圖像:

回答

0

get_queryset不是View類,所以self參數實際上是請求對象。

要糾正你的問題,你可以簡單地做:

def get_queryset(request): 
    query= request.GET.get('q') 
    if query: 
     return Album.objects.filter(album_title__icontains=query) 
    else: 
     return Album.objects.all() 

但我建議仔細檢查有關viewsclass-based views的文檔。

+0

謝謝你......但我希望我的搜索表單以這樣的方式工作,當我提供它的album_title信息,那麼它顯示在第一。因此,我應該需要創建新的窗體或它可以工作在相同的page.please提供給我詳細信息。我的項目看起來如下:https://ibb.co/nr83rk,https://ibb.co/kzG1cQ –

相關問題