2

私は django と haystack の初心者です。これは haystack SearchForm を拡張する私のフォームです

from haystack.forms import SearchForm
from ksaprice_app.models import ProductDiff, Vendor
from django import forms
from haystack.query import SearchQuerySet
class ProductsSearchForm(SearchForm):
    vendor_list=Vendor.objects.all().values_list('vendor_name')
    OPTIONS=( (item,str(item)) for item in vendor_list)
    print OPTIONS    select_vendor=forms.MultipleChoiceField(widget=forms.CheckboxSelectMultiple,choices=OPTIONS, required=False)
    def __init__(self, *args, **kwargs):
        super(ProductsSearchForm, self).__init__(*args, **kwargs)
    def search(self):
      sqs=super(ProductsSearchForm, self).search()
      if not self.is_valid():
        return self.no_query_found()
    #check to see if the submitted is clean and then filter
      if self.is_valid():               
        if self.cleaned_data['select_vendor']:
            #name of the field in html will be by default form field name
            vendor_filter=self.cleaned_data['select_vendor']
            #v_filter=vendor_filter[0].replace("(u'","").replace("',)","")
            v_filter=vendor_filter[0]
            print v_filter
            #sqs=SearchQuerySet().filter(product_vendor_name=v_filter)[:10]
            sqs=sqs.filter(product_vendor_name=v_filter)[:10] ##error is here
    return sqs
    def no_query_found(self):
        return self.searchqueryset.all()[:10]

そして、これはビューです

def ProductsSearch(request):
#instantiate the form with parameters from get method
  form = forms.ProductsSearchForm(request.GET)
  #calling search method here that fetches the search result
  context_var={}
  context_var['products'] = form.search()
  context_var['form']=forms.ProductsSearchForm
  print context_var
  return render_to_response('ksaprice_app/product_search.html', {'context_var': context_var})

sqs.filter で、このエラーが発生しています'list' object has no attribute 'filter'ドキュメントに従いました。何が問題なのかわかりません。search メソッドが SearchQuerySet オブジェクトではなくリスト オブジェクトを返すため、フィルター属性を見つけることができません。助けてください。私はpython 2.7.10、Django 1.8.4、およびsolr 4.10.2 sqsを使用しています

ここに画像の説明を入力

4

2 に答える 2