Dynamisch filter ListView CBV in Django 1.7

Ich habe gelesen, die offizielle Dokumentation auf dynamisch filtern ListView, aber ich bin immer noch verwirrt darüber, wie, es tatsächlich zu verwenden.

Momentan habe ich ein einfaches Modell, nennen wir es Scholarship:

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')

Ich habe eine Seite, wo ich bin, mit allen Stipendien, mit 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'^$', ScholarshipDirectoryView.as_view(), name='scholarship_directory'),
)

Ich versuche, die links generieren, die auf der home-Seite der Website, die Rückkehr der gefilterten Versionen von dieser ListView. Zum Beispiel, wenn jemand klickt auf einen "show-Stipendien für graduate students" - link, nur für Stipendien experience_level='G' angezeigt.

Habe ich kein problem wieder in dieser queryset über das shell -> Scholarship.objects.filter(experience_level__exact='G')

Ich bin nur unsicher, wie Sie dynamisch filtern der ListView per dropdown oder URL. Nicht auf der Suche nach ein plugin, sondern vielmehr verstehen, wie dynamisch Abfragen/filtern arbeitet in Django.

InformationsquelleAutor rnevius | 2014-09-04
Schreibe einen Kommentar