<p><strong>表单.py</strong></p>
<p>类搜索(SearchForm):</p>
<pre><code> OPTIONS = [
('staff','Staff'),
('admin','Admin')
]
option = forms.ChoiceField(
widget=forms.Select(
attrs={'class':'cd-select','id':'cd-dropdown'}),
label='',
choices=OPTIONS,
)
def __init__(self, *args, **kwargs):
super(Search, self).__init__(*args, **kwargs)
self.initial['option'] = 'staff'
self.fields['q'].label = ''
def search(self):
if not self.is_valid():
return self.no_query_found()
if not self.cleaned_data.get('q'):
return self.no_query_found()
sqs = self.searchqueryset.auto_query(self.cleaned_data['q'])
if self.cleaned_data['option'] == 'staff':
sqs = SearchQuerySet().auto_query(self.cleaned_data['q']).models(Staff)
elif self.cleaned_data['option'] == 'admin':
sqs = SearchQuerySet().auto_query(self.cleaned_data['q']).models(Admin)
if self.load_all:
sqs = sqs.load_all()
return sqs
</code></pre>