Django                
            filtro django
        
        
            
    Buscar..
Utilice django-filter con CBV
 django-filter es un sistema genérico para filtrar Django QuerySets según las selecciones de los usuarios. La documentación lo utiliza en una vista basada en funciones como modelo de producto: 
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)
El filtro será el siguiente:
import django_filters
class ProductFilter(django_filters.FilterSet):
    name = django_filters.CharFilter(lookup_expr='iexact')
    class Meta:
        model = Product
        fields = ['price', 'release_date']
 Para usar esto en un CBV, anule get_queryset() de ListView, luego devuelva el conjunto de querset filtrado: 
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
 Es posible acceder a los objetos filtrados en sus vistas, como con la paginación, en f.qs Esto paginará la lista de objetos filtrados. 
Modified text is an extract of the original Stack Overflow Documentation
        Licenciado bajo CC BY-SA 3.0
        No afiliado a Stack Overflow