Filtre dinámicamente ListView CBV en Django 1.7
He leído eldocumentación oficial sobre filtrado dinámico ListView, pero todavía estoy confundido acerca de cómo usarlo realmente.
Actualmente tengo un modelo simple, llamémosloScholarship
:
class Scholarship(models.Model):
title = models.CharField(max_length=255)
submitted_date = models.DateField(auto_now=True, verbose_name='Date Submitted')
EXPERIENCE_LEVEL_CHOICES = (
('A', 'Any'),
('S', 'Student'),
('G', 'Graduate')
)
experience_level = models.CharField(max_length=1, choices=EXPERIENCE_LEVEL_CHOICES, default='A')
Tengo una página donde muestro todas estas becas, usando ListView:
views.py
from django.views.generic import ListView
from .models import Scholarship
class ScholarshipDirectoryView(ListView):
model = Scholarship
template_name = 'scholarship-directory.html'
urls.py
from django.conf.urls import patterns, url
from .views import ScholarshipDirectoryView
urlpatterns = patterns('',
url(r'^Estoy tratando de generar enlaces en la página de inicio del sitio que devolverán versiones filtradas de este ListView. Por ejemplo, si alguien hace clic en el enlace "mostrar becas para estudiantes de posgrado", solo becas conexperience_level='G'
se mostrará.
No tengo problemas para devolver este conjunto de consultas a través del shell ->Scholarship.objects.filter(experience_level__exact='G')
No estoy seguro acerca de cómo filtrar dinámicamente el ListView a través de un menú desplegable o URL. No busco usar un complemento, sino que entiendo cómo funcionan dinámicamente las consultas / filtros en Django.
, ScholarshipDirectoryView.as_view(), name='scholarship_directory'),
)
Estoy tratando de generar enlaces en la página de inicio del sitio que devolverán versiones filtradas de este ListView. Por ejemplo, si alguien hace clic en el enlace "mostrar becas para estudiantes de posgrado", solo becas conexperience_level='G'
se mostrará.
No tengo problemas para devolver este conjunto de consultas a través del shell ->Scholarship.objects.filter(experience_level__exact='G')
No estoy seguro acerca de cómo filtrar dinámicamente el ListView a través de un menú desplegable o URL. No busco usar un complemento, sino que entiendo cómo funcionan dinámicamente las consultas / filtros en Django.