Django                
            django-filter
        
        
            
    Zoeken…
Gebruik een django-filter met CBV
 django-filter is een generiek systeem voor het filteren van Django QuerySets op basis van gebruikersselecties. De documentatie gebruikt het in een functie-gebaseerde weergave als een productmodel: 
from django.db import models
class Product(models.Model):
    name = models.CharField(max_length=255)
    price = models.DecimalField()
    description = models.TextField()
    release_date = models.DateField()
    manufacturer = models.ForeignKey(Manufacturer)
Het filter is als volgt:
import django_filters
class ProductFilter(django_filters.FilterSet):
    name = django_filters.CharFilter(lookup_expr='iexact')
    class Meta:
        model = Product
        fields = ['price', 'release_date']
 Om dit in een CBV te gebruiken, overschrijft u get_queryset() van de ListView en retourneert u de gefilterde querset : 
from django.views.generic import ListView
from .filters import ProductFilter
class ArticleListView(ListView):
    model = Product
    def get_queryset(self):
        qs = self.model.objects.all()
        product_filtered_list = ProductFilter(self.request.GET, queryset=qs)
        return product_filtered_list.qs
 Het is mogelijk om toegang te krijgen tot de gefilterde objecten in uw weergaven, zoals met paginering, in f.qs Dit zal de lijst met gefilterde objecten pagineren. 
Modified text is an extract of the original Stack Overflow Documentation
        Licentie onder CC BY-SA 3.0
        Niet aangesloten bij Stack Overflow