Django-filters FilterView показывает пустой список при загрузке страницы - PullRequest
0 голосов
/ 28 ноября 2018

Поэтому я хочу создать ссылку на данную страницу с фильтрами, чтобы она отображала каждый элемент в таблице, прежде чем я нажму поиск, и прекращаю отображать элементы только при неправильном вводе.Моя проблема похожа на следующую проблему, с некоторыми отличиями. Пустой список результатов при запуске страницы фильтра django

Различия в поведении автора по умолчанию - это мое желаемое поведение, и я использую представления на основе классов, а не функциональные представления.

Мои URL:

from django.urls import path

from . import views

app_name = 'advising'
urlpatterns = [

    path('', views.MyList.as_view(), name='MyList'),

]

мои просмотры:

from django.http import HttpResponse, HttpResponseRedirect
from django.shortcuts import render, get_object_or_404
from django.views import generic
from django.template import loader
from .models import *
from django_filters.views import FilterView
from .filter import *

class MyList(FilterView):

    template_name = 'advising/MyList.html'
    context_object_name = 'tables'
    filterset_class = MyFilter

    def get_queryset(self):
        return Table.objects.order_by('Name')

мой фильтр:

import django_filters
from .models import Table

class MyFilter(django_filters.FilterSet):
    Name = django_filters.CharFilter(lookup_expr='icontains')

    class Meta:
        model = Table   #The table this form will reference 
        fields = ["Name"]

мой шаблон:

    <form  method="get">
    {{ filter.form.as_p }}
    <button type="submit">Search</button>
  </form>

    {% if tables %}
        <ul>
        {% for table in tables %}
            <li>{{table}}</a></li>
        {% endfor %}
            </ul>
    {% else %}
        <p>Nothing to see here!.</p>
    {% endif %}

Есть ли способ имитировать поведение при поиске пустой строки при первой загрузке страницы?

Чтобы быть очень конкретным, я хочу, чтобы URL-совет / выполнял то же поведение, что и URL-совет./? Имя =

Прямо сейчас советую / всегда выдает пустой список

1 Ответ

0 голосов
/ 29 ноября 2018

Наконец-то нашел сообщение с той же проблемой, что и у меня (понятия не имею, почему она никогда не появлялась в Google), где проблема была решена.Это так же просто, как добавить строку «strict = False» на мой взгляд.

На этот вопрос я нашел ответ, который мне за него ответил: Показать все записи при запуске страницы фильтра django

...