Wednesday, 15 July 2015

django search form to query only when form is submitted -



django search form to query only when form is submitted -

here view

class singlenewsview(listview): model = news form_class = searchform template_name = "single_news.html" def get(self, request, pk, **kwargs): self.pk = pk self.pub_from = request.get.get('pub_date_from',false) self.pub_to = request.get.get('pub_date_to',false) self.crawlers = request.get.get('crawler',false) print self.crawlers homecoming super(singlenewsview,self).get(request,pk, **kwargs) def get_context_data(self, **kwargs): context = super(singlenewsview,self).get_context_data(**kwargs) context["form"] = searchform#(self.request.get) context["something"] = news.objects.filter(category_id=self.pk).filter(published_date__range=(self.pub_from,self.pub_to), crawler=self.crawlers) homecoming context

here when come in page doesnot show news because info not provided. want news displayed , when user submit form filter work. how can ??

you should add together get_queryset() method doing filtering in get_context_data(). can add together method below

def get_queryset(self): qs = news.objects.filter(category_id=self.pk) #you can alter back upwards 1 of pub_from or pub_to if self.pub_from , self.pub_to : qs = qs.filter(published_date__range=(self.pub_from,self.pub_to) if self.crawler: qs = qs.filter(crawler=self.crawlers)

django search

No comments:

Post a Comment