Created
July 19, 2012 05:25
-
-
Save gladson/3140945 to your computer and use it in GitHub Desktop.
using Class Based Generic ListView to seach forms and List
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
.... | |
from django.views.generic import ListView | |
from sgf.utils.decorators import page, permission_required_sgf | |
from sgf.administrativo.models import ComiteRegional | |
from sgf.administrativo.forms import FormComiteRegionalBusca | |
...... | |
class SearchListView(ListView): | |
form_class = None | |
def get_context_data(self, **kwargs): | |
context = super(SearchListView, self).get_context_data(**kwargs) | |
context['frm_srch'] = self.get_form() | |
qs_data = context['frm_srch'].data | |
context['query_string'] = '' | |
if qs_data: | |
qs_data.pop('page', '1') | |
context['query_string'] = qs_data.urlencode() | |
return context | |
def get_queryset(self): | |
if self.form_class is None: | |
return super(SearchListView, self).get_queryset() | |
return self.get_form().get_queryset() | |
def get_form(self): | |
#if not hasattr(self, '_inst_form'): | |
# setattr(self, '_inst_form', self.form_class(self.request.GET.copy() or None)) | |
#return self._inst_form | |
return self.form_class(self.request.GET.copy() or None) | |
class ComiteRegionalLista(SearchListView): | |
form_class = FormComiteRegionalBusca | |
paginate_by = 10 | |
template_name = "administrativo/comiteregional/comiteregional_lista.jinja" | |
comiteregional_lista = ComiteRegionalLista.as_view() | |
###################### FORM | |
class FormComiteRegionalBusca(forms.Form): | |
texto = forms.CharField(max_length=100, required=False,) | |
def get_queryset(self): | |
object_list = ComiteRegional.objects.all() | |
if self.is_valid(): | |
if self.cleaned_data['texto']: | |
object_list = object_list.filter(nome__icontains=self.cleaned_data['search_text']) | |
return object_list |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment