1
基本的なdjango-haystack SearchFormが正常に機能していますが、フィルタリングするための余分なフィールドを含むカスタム検索フォームを作成しようとしています。Django Haystackカスタム検索フォーム
私はカスタムフォームやビューを作成するに干し草のマニュアルを参照して続いてきたが、私は私が唯一のエラーを取得することができ、フォームを表示しようとすると:
ValueError at /search/calibration/
The view assetregister.views.calibration_search didn't return an HttpResponse object. It returned None instead.
がSearchFormでこれを基づかべきではないの世話をしますHttpResponseオブジェクトを返すか?
forms.py
from django import forms
from haystack.forms import SearchForm
class CalibrationSearch(SearchForm):
calibration_due_before = forms.DateField(required=False)
calibration_due_after = forms.DateField(required=False)
def search(self):
#First we need to store SearchQuerySet recieved after/from any other processing that's going on
sqs = super(CalibrationSearch, self).search()
if not self.is_valid():
return self.no_query_found()
#check to see if any date filters used, if so apply filter
if self.cleaned_data['calibration_due_before']:
sqs = sqs.filter(calibration_date_next__lte=self.cleaned_data['calibration_due_before'])
if self.cleaned_data['calibration_due_after']:
sqs = sqs.filter(calibration_date_next__gte=self.cleaned_data['calibration_due_after'])
return sqs
views.py
from .forms import CalibrationSearch
from haystack.generic_views import SearchView
from haystack.query import SearchQuerySet
def calibration_search(SearchView):
template_name = 'search/search.html'
form_class = CalibrationSearch
queryset = SearchQuerySet().filter(requires_calibration=True)
def get_queryset(self):
queryset = super(calibration_search, self).get_queryset()
return queryset
urls.py
from django.conf.urls import include, url
from . import views
urlpatterns = [
....
url(r'^search/calibration/', views.calibration_search, name='calibration_search'),
....
]
このような小さなものはまだ私をキャッチします! 私は 'class calibration_search(SearchView):'の代わりに 'def calibration_search(SearchView):'を使用していたため、オブジェクトに属性 'as_view'がありませんでした。 少なくとも私はできます今すぐフォームを見てください。唯一の問題は、何を検索しても結果が返ってこないということです。 – TimJ
'rebuild_index'コマンドを使ってインデックスを検索するためのデータを追加しましたか? – v1k45
私は、haystack-browserを使用して管理インターフェースで見ることができ、私の他の(主な)検索フォームはまだ完全に機能しているので、インデックスが機能しています。 何らかの理由で私のカスタマイズされたフォームが結果を得られません。 – TimJ