Django List View get_queryset не отображает все объекты

У меня есть следующий ListView, который я хочу использовать также для фильтрации результатов

class Membresias(ListView):
    model = Cliente
    template_name = 'main/membresias.html'

    def get_queryset(self):
        nombre = self.request.GET.get('nombre')
        if nombre is None:
            return Cliente.objects.all()
        else:
            return Cliente.objects.filter(nombre = nombre).values()

когда переменная 'nombre' не является None, она показывает результаты, ПРОБЛЕМА: но когда я оставляю ее пустой или равной None, она не показывает никаких записей вообще, а согласно валидации набор запросов должен получить все записи.

Вот часть html для таблицы

<div class = "container">
    <div class="table-responsive">
        <table class="table">
            <thead>
                <tr>
                <th scope="col">#</th>
                <th scope="col">Nombre</th>
                <th scope="col">Email</th>
                <th scope="col">Teléfono</th>
                <th scope="col">Activo</th>
                </tr>
            </thead>
            <tbody>
            {% for cliente in object_list %}
                <tr>
                <th scope="row"><a href="{{ cliente.get_absolute_url }}">{{cliente.id}}</a></th>
                <td>{{cliente.nombre}}</td>
                <td>{{cliente.email}}</td>
                <td>{{cliente.telefono}}</td>
                {% if cliente.activo == False %}
                <td><input type="checkbox" readonly class="form-check-input mt-1" id="Estatus" disabled value={{cliente.activo}}></td>
                {% else %}
                <td><input type="checkbox" readonly class="form-check-input mt-1" checked id="staticEmail" disabled value={{cliente.activo}}></td>
                {% endif %}
                </tr>
                {% endfor %}
            
            </tbody>
        </table>
    </div>

Вы можете проверить правдивость nombre и если nobre None или пусто (''), работайте с:

class Membresias(ListView):
    model = Cliente
    template_name = 'main/membresias.html'

    def get_queryset(self):
        nombre = self.request.GET.get('nombre')
        if not nombre:
            return Cliente.objects.all()
        else:
            return Cliente.objects.filter(nombre=nombre)

в return Cliente.objects.filter(nombre = nombre).values() метод .values() преобразует запрос из экземпляра модели в словарь paython, что может быть проблемой, попробуйте отбросить .values()

return Cliente.objects.filter(nombre = nombre)
Вернуться на верх