Использование фильтров Django и экспорт данных с помощью CSV

Я сделал форму поиска по фильтру, чтобы отфильтровать некоторые элементы на основе названия и категории. Она работает, но я хочу экспортировать элементы с помощью CSV, но не получается.

Он продолжает показывать мне эту страницу [![ошибка django page][1]][1] [1]: https://i.stack.imgur.com/H8BYK.png

и думаю, что это ошибка, но, пожалуйста, прокрутите вниз, чтобы увидеть представления, URL, модели и шаблон

context 
{'filter_form': <inventory_app.filter.ProductFilter object at 0x00000268BD07A940>,
 'products': <QuerySet [<Product: HP laptop-10>, <Product: HP computer-40>]>}
filter_form 
<inventory_app.filter.ProductFilter object at 0x00000268BD07A940>
products    
<QuerySet [<Product: HP laptop-10>, <Product: HP computer-40>]>
request 
<WSGIRequest: GET '/'>

Виды

def item_list(request):
    products = Product.objects.all()
    filter_form = ProductFilter(request.GET, queryset= products)
    products = filter_form.qs
    context = { "filter_form": filter_form,
                "products": products, }

*This is the CSV export function where it fails*

    if filter_form['export_to_CSV'].value() == True:
        response = HttpResponse(content_type='text/csv')
        response['Content-Disposition'] = 'attachment; filename="my_inventory.csv"'
        writer = csv.writer(response)
        writer.writerow(['CATEGORY', 'ITEM NAME', 'QUANTITY'])
        instance = products
        for product in instance:
            Writer.writerow([product.category, product.item_name, product.quantity])
        return response
   return render(request, 'item_list.html', context)

Форма поиска по фильтру

import django_filters
from .models import Product
from django import forms

class ProductFilter(django_filters.FilterSet): 
   export_to_csv = django_filters.filters.BooleanFilter(widget=forms.CheckboxInput) 
   class Meta:
      model = Product
      fields = ['item_name', 'category', 'export_to_csv']

URLs

path('', item_list, name='item_list'),

Шаблон

       <form method='get' action=''>{% csrf_token %}
            {{ filter_form.form|crispy }}
            <button class="btn btn-primary" type="submit">search</button>
        </form>
``


  
Вернуться на верх