class SearchForm(forms.Form): MODE_CHOICES = ((0, u"任意匹配"), (1, u"全部匹配"), (2, u"高级搜索")) word = forms.CharField(label=u"关键词", required=False, initial="") mode = forms.ChoiceField(label=u"模式", required=False, choices=MODE_CHOICES, initial=0) def __init__(self, *args, **kwargs): super(SearchForm, self).__init__(*args, **kwargs) self.search = SphinxQuerySet(index="*") def clean_word(self): word = self.cleaned_data["word"].strip() if len(word) > 0: return word return None def clean_mode(self): mode = int(self.cleaned_data["mode"] or 0) return {0: "SPH_MATCH_ANY", 1: "SPH_MATCH_ALL", 2: "SPH_MATCH_EXTENDED2"}[mode] def is_valid(self): return super(SearchForm, self).is_valid() and self.cleaned_data["word"] def query(self): return self.search.query(self.cleaned_data["word"]).set_options(passages=True, mode=self.cleaned_data["mode"])
class SearchForm(forms.Form): MODE_CHOICES = ( (0, u'任意匹配'), (1, u'全部匹配'), (2, u'高级搜索'), ) word = forms.CharField(label=u'关键词', required=False, initial='') mode = forms.ChoiceField(label=u'模式', required=False, choices=MODE_CHOICES, initial=0) def __init__(self, *args, **kwargs): super(SearchForm, self).__init__(*args, **kwargs) self.search = SphinxQuerySet(index='*') def clean_word(self): word = self.cleaned_data['word'].strip() if len(word) > 0: return word return None def clean_mode(self): mode = int(self.cleaned_data['mode'] or 0) return { 0: 'SPH_MATCH_ANY', 1: 'SPH_MATCH_ALL', 2: 'SPH_MATCH_EXTENDED2' }[mode] def is_valid(self): return super(SearchForm, self).is_valid() and self.cleaned_data['word'] def query(self): return self.search.query(self.cleaned_data['word']).set_options( passages=True, mode=self.cleaned_data['mode'])
def __init__(self, *args, **kwargs): super(SearchForm, self).__init__(*args, **kwargs) self.search = SphinxQuerySet(index="*")
def __init__(self, *args, **kwargs): super(SearchForm, self).__init__(*args, **kwargs) self.search = SphinxQuerySet(index='*')