我整晚都在用头撞这个东西,在我下车之前,也许你们中的一个人知道我忽略了一些事情。
什么有效:我正在尝试使用 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'),
)
我已经对此进行了很多搜索,并整夜搜索了文档,但它被避开了。也许有人在那里看到了我没有看到的东西?任何帮助表示赞赏,谢谢!