Метод не разрешен (POST): /items/

Итак, я пытаюсь сделать фильтр с помощью django, чтобы фильтровать элементы на главной странице. Немного контекста:

Элемент может быть назначен пользователю или нет. Мне нужен фильтр, чтобы видеть, какие элементы назначены, а какие нет.

Это моя функция в views.py:

class ItemsView(ListView):
    template_name = 'inventory/items.html'
    context_object_name = 'items_list'

    def get_queryset(self):
        if (self.request.user.is_authenticated):
            
            if self.request.method == "get":
                searched = self.request.GET.get('searched')
                
                if searched == "None":
                    return Item.objects.filter(assigned_user__isnull=True, company=getCompany(self.request.user))
        
                else:
                    return Item.objects.filter(assigned_user__isnull=False, company=getCompany(self.request.user))
            
            else:
                return Item.objects.filter(company=getCompany(self.request.user))

А это от моего items.html:

<form method="post" action="/items">
    {% csrf_token %}
    <select name="item_filter">
        <option value="None">Not Checked In</option>
        <option value="Checked_In">Checked In</option>
    </select>
    <input type="submit" value="filter">
</form>

В основном я хочу, чтобы пользователь мог выбрать один из двух вариантов в выпадающем меню, и элементы должны быть перечислены на основе сделанного им выбора.

Когда я использую эту форму и нажимаю кнопку отправки, экран становится белым, а в моей консоли появляется ошибка Method Not Allowed (POST): /items/ появляется. Связано ли это с тем, что я использую generic.ListView для моего представления?

Спасибо

в представлении списка - POST не разрешен. Но вам это и не нужно: В шаблоне:

<form action="/items">
    <select name="item_filter">
        <option value>Not Checked In</option>
        <option value="Checked_In">Checked In</option>
    </select>
    <input type="submit" value="filter">
</form>

в просмотре:

class ItemsView(ListView):
    ... # any staff

    def get_queryset(self):
        query = {'company':getCompany(self.request.user)}
        if (self.request.user.is_authenticated):
                query[assigned_user__isnull] = bool(self.request.GET.get('item_filter'))
        return Item.objects.filter(query)
Вернуться на верх