私は一晩中これに頭を悩ませてきました。私が降りる前に、あなたの誰かが私が見落としたことを知っているかもしれません.
動作するもの: Django 1.4 と Haystack 2.0-dev を使用して書籍検索エンジンを作成しようとしています。インポートした4冊の本とそのページをうまく検索できるようになりました。
できないこと:ただし、フォームのチェックボックスを使用して、ユーザーが検索したい本を選択できるようにしたいと考えています。いろいろ試してみますが、チェックボックスが表示されず、タイトルが4つあるのに本がリストされません。
ここに私の search/views.py があります(主にこの質問から借用)
from django import forms
from haystack.forms import HighlightedModelSearchForm
from books.models import Book, Author
class BasicSearchForm(HighlightedModelSearchForm):
def __init__(self, *args, **kwargs):
super(BasicSearchForm,self).__init__(*args,**kwargs)
book_choices = Book.objects.all()
book_tuples = tuple([(c.id, c.title) for c in book_choices])
self.fields['book'] = forms.ChoiceField(choices=book_tuples, required=False)
def search(self):
sqs = super(BasicSearchForm, self).search()
if self.is_valid() and self.cleaned_data['book']:
if self.cleaned_data['book'] != "*":
sqs = sqs.filter(book__id=self.cleaned_data['book'])
return sqs
そして、ここに私の urls.py があります
from django.conf.urls import patterns, include, url
from haystack.views import SearchView, search_view_factory
from haystack.query import SearchQuerySet
from search.views import BasicSearchForm
urlpatterns = patterns('',
url(r'^search/$',
SearchView(
#template='book_search.html',
form_class = BasicSearchForm
),
name='haystack_search'
),
url(r'^accounts/login/', 'django.contrib.auth.views.login'),
)
私はこれについて多くの検索を行い、一晩中ドキュメントを精査しましたが、回避されました。誰かが私が見ていないものを見ているのではないでしょうか?どんな助けでも大歓迎です、ありがとう!