from django import forms from .models import Recette class SearchForm(forms.Form): text = forms.CharField( widget=forms.TextInput(attrs={'autofocus': True}), label="Texte", required=False ) saison = forms.ChoiceField(choices=(('all', "Toutes"),) + Recette.SAISON_CHOICES) veget = forms.BooleanField(label="Végétarien", required=False) def search(self): if self.is_valid(): qs = Recette.objects.all() if self.cleaned_data['veget']: qs = qs.filter(is_veget=True) if self.cleaned_data['text']: qs = qs.filter(nom__icontains=self.cleaned_data['text']) if self.cleaned_data['saison'] != 'all': qs = qs.filter(saison__contains=[self.cleaned_data['saison']]) return qs else: return Recette.objects.none()