Django-filter - объект 'FormSet' не имеет атрибута 'model'

Я использую django-filter для создания функциональности поиска на моей странице. Однако вместо элементов из конкретной модели я хочу фильтровать значения, которые я отображаю в начальном методе в моей RequestFormset, чтобы после загрузки страницы отображались все значения из модели Components и пользователь мог вставить количество единиц через поле ввода

Проблема, с которой я столкнулся, заключается в том, что я не знаю, как интегрировать мой набор форм и библиотеку django-filter. Есть ли у вас идеи, как я могу достичь чего-то подобного?

views.py

class CostCalculatorView(TemplateView):
    template_name = "cost_calculator.html"
    
    def get(self, *args, **kwargs):
        get_components = Components.objects.all()
        get_datetime = timezone.now().strftime('%Y-%m-%dT%H:%M:%S')
        
        formset = RequestFormset(initial=[{
            'author': self.request.user.email,
            'related_product': component.related_product,
            'related_component': component.id,
            'created': get_datetime,
            'number_of_units': 0
            } for component in get_components])

        filterForm = RequestFilter(self.request.GET,queryset=formset) # how to pass values from initial mwthod here?
        formset = filterForm.qs
        
        return self.render_to_response(
            {'calculator_formset': formset, 
            'filterForm': filterForm,
            })

    def post(self, *args, **kwargs):

        formset = RequestFormset(data=self.request.POST)

        if formset.is_valid():
            for form in formset:
                created = form.cleaned_data.get('created')
                qs = Requests.objects.filter(author=self.request.user, created=created)
                form.save()
                dataset = RequestResource().export(qs)
                response = HttpResponse(dataset.xlsx, content_type="xlsx")
                response['Content-Disposition'] = 'attachment; filename=CE_{created}.xlsx'.format(created=created)
            return response

filters.py

class RequestFilter(django_filters.FilterSet):

    class Meta:
        model = CERequest
        fields = ('related_product', 'related_component')

forms.py

class RequestForm(forms.ModelForm):
    author = forms.CharField(widget = forms.HiddenInput(), required = False)
    created = forms.DateTimeField(widget = forms.HiddenInput(), required = False)
    number_of_units = forms.IntegerField(min_value=0)
    total_price = forms.IntegerField(widget = forms.HiddenInput(), required = False)
    
    class Meta: 
        model = Request
        fields = ('author', 'created', 'related_product', 'related_component', 'number_of_units')

RequestFormset = formset_factory(RequestForm, extra=0, can_delete=False)
Вернуться на верх