# en urls.py
from ......views import ConsultaListView
# y en tus urls agregas
url('^consultas/', ConsultaListView.as_view(), name="consultas_lista"),
# en views.py
class ConsultaListView(ListView):
model = Consulta
template_name = "consultas/consultas_list.html"
def get_queryset(self, *args, **kwargs):
# en qs guardo el QuerySet por defecto
qs = super(ConsultaListView, self).get_queryset(*args, **kwargs)
self.fechadesde = self.request.GET.get('fechadesde')
self.fechahasta = self.request.GET.get('fechahasta')
if self.fechadesde:
# aca asumo que fechadesde es un datetime o su representación en texto
qs = qs.filter(fecha__gte = self.fechadesde)
if self.fechahasta:
# aca asumo que fechahasta es un datetime o su representación en texto
qs = qs.filter(fecha__lte = self.fechahasta)
return qs
def get_context_data(self, **kwargs):
context = super(ConsultaListView, self).get_context_data(*args, **kwargs)
context.update({
'filtros': {
'fechadesde': self.fechadesde,
'fechahasta': self.fechahasta
}
})
return context
# consultas/consultas_list.html
<form action="">
Fecha desde: <input class="inputDate" name="fechadesde" {% if filtros.fechadesde %}value="{{ filtros.fechadesde }}"{% endif %} />
Fecha hasta: <input class="inputDate" name="fechahasta" {% if filtros.fechahasta %}value="{{ filtros.fechahasta }}"{% endif %} />
<button type="submit" class="button">Filtrar</button>
</form>